- public class ArrayDemo2{
- //定义打印方法
- public static void printArray (int [] arr)
- {
- System.out.print("[");
- for (int x=0; x<arr.length; x++)
- {
- if (x==arr.length-1)
- System.out.println(arr[x]+"]");
- else
- System.out.print(arr[x]+",");
- }
- }
- //定义交换方法
- public static void swap(int [] arr, int x, int y)
- {
- int temp = arr[x];
- arr[x] = arr[y];
- arr[y] = temp;
- }
- public static void main (String args [])
- {
- int [] array = {33,2,45,14,25,47,78,12};
- printArray(array);
- bubbleSort_2(array);
- printArray(array);
- }
- /*
- 需求:给数组arr{33,2,45,14,25,47,12,78}进行排序。
- 思路:
- 选择排序:
- 1.排序需要进行比较,将数组中第一个元素跟其他剩余的进行比较
- 取出最小的一个放置到第一个元素的位置,需要进行遍历
- 2.然后再将数组中的剩余的元素以此进行比较。需要进行循环嵌套
- 冒泡排序:
- 1.需要将相邻的两个数进行比较,然后进行换位,小的在前,大的在后
- 需要明确:
- 1.有没有返回值,返回值的类型是什么
- 2.未知的内容
- */
- //选择排序
- public static void selectSort(int [] arr)
- {
- for (int x=0; x<arr.length-1; x++)
- {
- for (int y=x+1; y<arr.length; y++)
- {
- if (arr[x]>arr[y])
- swap(arr,x,y);
- }
- }
- }
- //冒泡排序
- public static void bubbleSort(int [] arr)
- {
- for (int x=0; x<arr.length-1; x++)
- {
- for (int y=0; y<arr.length-1-x; y++)
- //-1是为了下面y+1越界,
- //-x是为了随着外循环的增加,内循环减少循环元素
- {
- if (arr[y]>arr[y+1])
- swap(arr,y+1,y);
- }
- }
- }
- public static void bubbleSort_2(int [] arr)
- {
- for (int x=arr.length-1; x>0; x--)
- {
- for (int y=0; y<x; y++)
- {
- if (arr[y]>arr[y+1])
- swap(arr, y, y+1);
- }
- }
- }
- }
复制代码
|
|