冒泡排序:数据在数组中不断向前移动,冒泡排序的基本思想是,对比相邻的两个元素,如果满足条件,则交换两个元素的值,把较小的往数组前移动,把较大的值向数组后面移动。例如:
int a[]= {63,18,58,3,4,65,1}; for(int i=1;i<a.length;i++) { for(int j=0;j<a.length-i;j++) { if(a[j]>a[j+1]) { int temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } System.out.println("冒泡排序的结果:"); for(int tmp:a) { System.out.print(tmp+" "); } /* 冒泡排序的结果: 1 3 4 18 58 63 65 */
直接选择排序:将将数组中某个位置的元素与其他所有元素做对比,如果满足条件则交换。和冒泡排序的区别是,直接选择排序不是交换相邻两个元素,而是将满足条件的元素与指定的位置进行交换。例如:
int a[]= {63,18,58,3,4,65,1}; int index;//作为一个指针,指向数组中最大的那个数 for(int i=1;i<a.length;i++) { index=0; for(int j=1;j<a.length-1;j++) { if(a[index]<a[j]) { index=j; } } int tmp=a[a.length-i]; a[a.length-i]=a[index]; a[index]=tmp; } System.out.println("选择排序的结果为:"); for(int tmp:a) { System.out.print(tmp+" "); } /* 选择排序的结果为: 1 63 18 58 3 4 65 */
原文:https://www.cnblogs.com/mlzhang/p/14622313.html