选择排序和冒泡排序的区别

互联网 19-6-5
冒泡排序:冒泡排序(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开发教程栏目进行学习!

以上就是选择排序和冒泡排序的区别的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 选择排序
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:stringbuffer和stringbuilder的区别

相关资讯