- /*
- 对给定数组进行排序
- {6,3,1,5,9,7,8}
- */
- /*
- 选择排序:
- 内循环结束一次,最值出现在头角标的位置
- */
- class ArrayTest2
- {
- /*冒泡排序*/
- public static void bubbleSort(int [] arr)
- {
- for (int x=0;x<arr.length-1 ;x++ )
- {
- for (int y=0;y<arr.length-x-1 ;y++ )//-x:让每次比较的元素减少。-1:避免角标越界
- {
- if(arr[y]>arr[y+1])
- {
- swap(arr,y,y+1);
- }
- }
- }
- }
-
- public static void swap(int [] arr,int a,int b)
- {
- int temp=arr[a];
- arr[a]=arr[b];
- arr[b]=arr[a];
- }
- public static void main(String[] args)
- {
-
- int[] arr = {6,3,1,5,9,7,8};
- //排序前
- printArray(arr);
- //排序
- bubbleSort(arr);
- //排序后:
- printArray(arr);
-
- }
- public static void printArray(int[] arr)
- {
-
- for (int x=0;x<arr.length ;x++ )
- {
-
- if(x!=arr.length-1)
- System.out.print(arr[x]+", ");
- else
- System.out.println(arr[x]);
- }
- }
-
- }
复制代码 排序后的结果完全不对,这是为什么呢?
|