数组的排序,加入数组中相邻元素的置换

来源:互联网 发布:虚拟社交网络弊大于利 编辑:程序博客网 时间:2024/05/22 06:58
/*按大小排列数组中元素的顺序{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]+",");elseSystem.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;}}

0 0
原创粉丝点击