方法一: 选择排序:
选择排序就是不断地从未排序的元素中选择最大(或者最下)的元素放入已经排好序的元素集合中,直到未排序中仅剩一个元素为止
public static void main(String[] args) { int[]arr={1,6,4,3,2,5}; /*外循环 将数组里的参数逐个进内循环去比较 从第一个到倒数第二个 为了保证后面存在数去比较 避免内循环数组下标越界异常 * */ for (int i = 0; i < arr.length-1; i++) { /*传进去一个数去和没比较的数去比较 如果大于就交换位置 如果不大于就和下一个数比较 直到大于或者一波内循环结束*/ for (int i1 = i+1; i1 < arr.length; i1++) { if(arr[i]>arr[i1]){ int temp; temp=arr[i]; arr[i]=arr[i1]; arr[i1]=temp; } } } for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+"\t"); } }
方法二:冒泡排序:
冒泡排序的原理(以递增序为例)是每次从头开始依次比较相邻的两个元素,
如果后面一个元素比前一个要大,说明顺序不对,则将它们交换,
本次循环完毕之后再次从头开始扫描,直到某次扫描中没有元素交换,
说明每个元素都不比它后面的元素大,至此排序完成。
public static void main(String[] args) { int[]a={2,1,4,5,3}; for(int i=1;i<a.length;i++) //外循环相当于重新扫描的次数 { //直到某次扫描中没有元素交换, for(int j=0;j<a.length-i;j++) { int temp; //内循环为了进行相邻的两个元素的大小比较 和元素交换 if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } System.out.println(Arrays.toString(a)); }