冒泡排序(BubbleSort)的基本概念是:顺次比较相邻的两个数,将小数放在前面,大数放在背面。即在第一趟:起首比较第1个和第2个数,将小数放前,大数放后。
然后比较第2个数和第3个数,将小数放前,大数放后,云云继承,直至比较末了两个数,将小数放前,大数放后。至此第一趟完毕,将最大的数放到了末了。在第二趟:仍从第一对数最先比较 (因为能够因为第2个数和第3个数的交流,使得第1个数不再小于第2个 数),将小数放前中,大数放后,一向比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟完毕,在倒数第二的位置上获得一个新的最大数(其实在全部数列中是第二大的数)。云云下去,反复以上历程,直至终究完成排序。(引荐进修:Java视频教程)
挑选排序:
第一次从下标为0的最先下标为0的这个数与背面的n-1个举行比较;找出最小或许最大的放在下标为0的这个位置;第二次从下标为1的最先比较;查询剩下的最大或许最小值;放在下标为1的位置;以此类推;直到排序完成
实例:
public class MaoPao { public static void main(String[] args) { int arr[]={23,12,46,24,87,65,18,14,43,434,65,76}; int k=0; //冒泡排序 for(int i=0;i<arr.length-1;i++){ for(int j=0;j<arr.length-1;j++){ if(arr[j]<arr[j+1]){ int t=arr[j]; arr[j]=arr[j+1]; arr[j+1]=t; k++; } System.out.print("i="+i+"的第j="+j+"次交流\t"); for(int d=0;d<arr.length;d++){ System.out.print(arr[d]+"\t"); } System.out.println(); } } System.out.println("交流的次数为"+k); //挑选排序 int l=0; for(int i=0;i<arr.length-1;i++){ for(int j=i+1;j<arr.length-1;j++){ if(arr[i]<arr[j]){ int t=arr[i]; arr[i]=arr[j]; arr[j]=t; l++; } System.out.print("i="+i+"的第j="+j+"次交流\t"); for(int d=0;d<arr.length;d++){ System.out.print(arr[d]+"\t"); } System.out.println(); } } for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+"\t"); } System.out.println("交流的次数为"+l); } }
是时刻来总结下他们的区分
(1)冒泡排序是比较相邻位置的两个数,而挑选排序是按递次比较,找最大值或许最小值;
(2)冒泡排序每一轮比较后,位置不对都须要换位置,挑选排序每一轮比较都只须要换一次位置;
(3)冒泡排序是经由过程数去找位置,挑选排序是给定位置去找数;
更多Java相干技术文章,请接见Java开辟教程栏目举行进修!
以上就是挑选排序和冒泡排序的区分的细致内容,更多请关注ki4网别的相干文章!