选择排序VS冒泡排序
来源:互联网 发布:心动网络 校招笔试 编辑:程序博客网 时间:2024/05/23 02:02
选择排序:每次选择当前最小或者最大的数位置与相应的位置进行交换,最好即完成排序,它是对冒泡排序的一种优化;
冒泡排序:也会选择当前的最大或者最小的数到相应的位置,但是他每次都是两两交换,就像气泡一样慢慢的将数升上去
区别:两者的过程不一样,选择采用标记来标记当前的需要交换的位置,最后只需要交换一次,一次选择交换一次
相同点:两者思想一样,都是冒泡,但是选择是一口气飞上去,冒泡是慢慢升上去;
总结,选择是对冒泡的一种优化
冒泡排序的代码
选择排序的代码:
public class MaoPaoPaixu { public static void main(String[] args) { // TODO 自动生成的方法存根 int[] array = {1,6,8,4,5,2,3}; for (int i = 0; i < array.length; i++) { System.out.print(array[i]+" "); } System.out.println(); maoPao(array); for (int i = 0; i < array.length; i++) { System.out.print(array[i]+" "); } System.out.println(); } public static void maoPao(int[] array){ int temp = 0; //交换中介 int count = 0; //交换次数 for(int i=0;i<array.length;i++){ for(int j =0;j<array.length-i-1;j++){ if(array[j]>array[j+1]){ //System.out.print(array[j+1]+" "+array[j]+" "); temp = array[j+1]; array[j+1] = array[j]; array[j]= temp; count++; } } } System.out.println("交换的次数:"+count); }}结果:1 6 8 4 5 2 3 交换的次数:121 2 3 4 5 6 8
public class XuanZePaiXu {
public static void main(String[] args) { // TODO 自动生成的方法存根 int[] array = {1,6,8,4,5,2,3}; for (int i = 0; i < array.length; i++) { System.out.print(array[i]+" "); } System.out.println(); XuanZe(array); for (int i = 0; i < array.length; i++) { System.out.print(array[i]+" "); } System.out.println();}/** * 遍历一遍,找出最小的放在第一位,和第一位交换 * @param a */private static void XuanZe(int[] array){ int min =0; //标记的要交换的下标 int temp =0;//交换中介 int count = 0 ;//交换次数 for(int i =0;i < array.length-1;i++){ min = i; for(int j=i+1;j<array.length;j++){ if(array[min]>array[j]){ min = j; } } //找到最小的下标直接交换即可 temp = array[i]; array[i] = array[min]; array[min] = temp; count++; } System.out.println("交换的次数:"+count);}
}
结果:
1 6 8 4 5 2 3
交换的次数:6
1 2 3 4 5 6 8
“`
0 0
- 选择排序VS冒泡排序
- 冒泡排序Vs直接选择排序
- 八大排序算法 之 冒泡排序VS选择排序
- 冒泡排序 选择排序
- 冒泡排序、选择排序
- 冒泡排序 选择排序
- 选择排序 冒泡排序
- 冒泡排序/选择排序
- 冒泡排序/选择排序
- 冒泡排序 选择排序
- 选择排序冒泡排序
- 选择排序 冒泡排序
- 冒泡排序、选择排序
- 冒泡排序,选择排序
- 选择排序-【冒泡排序】
- 冒泡排序,选择排序
- 选择排序&冒泡排序
- 冒泡排序选择排序
- C#的Struct结构体
- 04 Dec 15 让PHP7达到最高性能的几个Tips
- 利用ServerSocket获取浏览器http协议内容
- QTreeWidget树的三态操作
- 随便记点javaScript代码
- 选择排序VS冒泡排序
- 1036. 跟奥巴马一起编程(15)
- Java输出逆时针螺旋数字
- 代驾管理系统
- Java Study 03
- 1. jQuery Mobile简介
- RTEMS设计思想
- Android之getCacheDir()和getFilesDir()方法区别
- UVa - 1585 - Score