- /*
- 按大小排列数组中元素的顺序{2,23,5,6,9,1}
- */
- //从小到大排列
- //内循环结束一次,最值出现在头角标位上
- //选择排序
- class ArrayTest2
- {
- 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[y]<arr[x])
- {
- /*
- int temp=arr[x];
- arr[x]=arr[y];
- arr[y]=temp;
- */
- swap(arr,x,y);//换位置
- }
- }
- }
- }
- //打印数组
- public static void printArray(int[] arr)
- {
- System.out.print("[");
- for(int x=0;x<arr.length;x++)
- {
- if(x!=arr.length-1)
- System.out.print(arr[x]+",");
- else
- System.out.println(arr[x]+"]");
- }
- }
- public static void main(String[] args)
- {
- int[] arr={2,23,5,6,9,1};
- //printArray(arr);
- //selectsort(arr);//选择排序
- //Arrays.sort(arr);//java中已经定义好的一种排序方式,开发中对数组排序要使用该句代码
- bubblesort(arr);
- printArray(arr);
- }
- //冒泡排序:相邻的两个元素相互比较,如果符合条件换位
- //第一圈,最值出现在最后位
- 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])
- {
- /*
- int temp=arr[y];
- arr[y]=arr[y+1];
- arr[y+1]=temp;
- */
- 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] = temp;
- }
- }
转载地址:
http://blog.csdn.net/java19930623/article/details/44946635