A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

选择排序
回复 使用道具 举报

冒泡排序怎么写? 选择和冒泡有什么区别?大神求指教
回复 使用道具 举报
这是冒泡啊
回复 使用道具 举报
这个是选择排序。冒泡排序最显著的标志在于相邻元素的比较和交换,它的的思想为:每一次排序过程,通过相邻元素的交换,将当前没有排好序中的最大(小)移到数组的最右(左)端。而选择排序的思想也很直观:每一次排序过程,我们获取当前没有排好序中的最大(小)的元素和数组最右(左)端的元素交换,循环这个过程即可实现对整个数组排序。
选择排序的平均时间复杂度比冒泡排序稍低。希望我的解释对你有帮助。
回复 使用道具 举报
强烈支持楼主ing
回复 使用道具 举报
cherrycool 发表于 2015-11-25 19:10
这个是选择排序。冒泡排序最显著的标志在于相邻元素的比较和交换,它的的思想为:每一次排序过程,通过相邻 ...

谢谢谢谢谢{:3_51:}
回复 使用道具 举报
这是冒泡吧??
回复 使用道具 举报
这是选择排序
回复 使用道具 举报
iOS-lye 来自手机 中级黑马 2015-11-28 00:55:15
29#
这个是选择来自: iPhone客户端
回复 使用道具 举报
这是选择排序
回复 使用道具 举报
冒泡排序和选择排序都是通过双重for循环来实现。两者不同关键在于交换的依据不同。

冒泡排序的思想是大数下沉,小数上浮,通过比较相邻元素大小(即:if (arr[j] > arr[j+1])判断条件)来实现,即
void maoPao(int arr[],int len){  //定义int类型数组arr、数组长度len
   
    int temp;  //临时变量
   
//    双重循环

    for (int i = 0; i < len; i++) {
        
        for (int j = 0; j < len - 1 - i; j++) {
            
            if (arr[j] > arr[j+1]){  //比较相邻元素大小(交换依据)
            
                temp = arr[j];
               
                arr[j] = arr[j+1];
               
                arr[j+1] = temp;
            
            }
        }
    }

选择排序的思想史拿一个元素跟每个尚未排序的元素相比较(即: if (arr[i] > arr[j])为判断条件),从而实现排序。即:
void selectSort(int arr[],int len){
   
    int temp;

//写双重循环
   
    for (int i = 0; i < 10; i++) {
        
        for (int j = i+1; j < len; j++) {
            
            if (arr[i] > arr[j]){  //交换的依据
            
                temp = arr[i];
               
                arr[i] = arr[j];
               
                arr[j] = temp;
            
            }
        }
    }
}
回复 使用道具 举报
忘了给结论了,此处为选择排序
回复 使用道具 举报
董棁 中级黑马 2015-11-28 08:09:36
33#
选择排序吧
回复 使用道具 举报
冒泡算法啊
回复 使用道具 举报
看内循环的做法, 应该是选择排序算法,如果我错了请指出,3Q
回复 使用道具 举报
你确定你这不是水贴》?必须选择排序啊
回复 使用道具 举报
这肯定不是冒泡排序,选择排序我还没学,所以我也不知道
回复 使用道具 举报
junjunzhang 发表于 2015-11-28 07:53
冒泡排序和选择排序都是通过双重for循环来实现。两者不同关键在于交换的依据不同。

冒泡排序的思想是大数 ...

楼主精辟
回复 使用道具 举报
选择排序         
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马