黑马程序员技术交流社区

标题: 请问这是冒泡排序还是选择排序呀? 有点晕 [打印本页]

作者: 火火火火鸟    时间: 2015-11-20 21:44
标题: 请问这是冒泡排序还是选择排序呀? 有点晕


main () {
    int arry1[]={9,4,2,4,5,6,4,3,2,4,23,45};
    int a=0;
    for (int i=0; i<12; i++) {
      
        for (int j=1+i ; j<12;j++ ) {
            
            if(arry1[i ]<arry1[j]){
                a =arry1[i];
                arry1[i]=arry1[j];
                arry1[j]=a ;
            }
            

            
        }
        printf("%d\n",arry1[i]);
    }
}
作者: IT-capfer    时间: 2015-11-20 22:37
强烈支持楼主ing
作者: seahom007    时间: 2015-11-20 22:41
我怎么觉得你是北京校区1111期的..兄弟
作者: 火火火火鸟    时间: 2015-11-20 23:29
seahom007 发表于 2015-11-20 22:41
我怎么觉得你是北京校区1111期的..兄弟

{:3_55:}你怎么看出来的?
作者: Tmac90301    时间: 2015-11-20 23:29
这是选择排序吧
作者: 火火火火鸟    时间: 2015-11-20 23:30
IT-capfer 发表于 2015-11-20 22:37
强烈支持楼主ing

谢支持{:3_67:}
作者: 1170191405    时间: 2015-11-20 23:31
选择排序兄弟
作者: IPswhatb“is”    时间: 2015-11-20 23:34
这么冒泡吧,,,,,
作者: Breezearrow    时间: 2015-11-20 23:40
算法是冒泡的算法
作者: 石油小硕    时间: 2015-11-21 23:11
1111班...同学啊.....
作者: 火火火火鸟    时间: 2015-11-21 23:20
石油小硕 发表于 2015-11-21 23:11
1111班...同学啊.....

同学你好 同学再见{:3_54:}
作者: Mr.Yan    时间: 2015-11-21 23:22
这是在  "布噜布噜",同学.相邻两个元素进行比较大小.
作者: black747521    时间: 2015-11-21 23:50
选择排序 说冒泡的都是什么鬼啊
作者: seahom007    时间: 2015-11-21 23:51
火火火火鸟 发表于 2015-11-20 23:29
你怎么看出来的?

一切尽在不言中...
作者: a578530825    时间: 2015-11-22 00:52
选择排序啊
作者: cube川    时间: 2015-11-22 13:09
选择排序
作者: 夜神月No1    时间: 2015-11-22 19:08
用的选择的方法,比较大小的时候用的是冒泡
作者: l5681065    时间: 2015-11-24 17:55
我觉得 不是冒泡排序,冒泡排序的一个标志是内层循环每一次都会少一次 但这是选择排序还是快速排序 我忘了
作者: 火火火火鸟    时间: 2015-11-24 21:30
seahom007 发表于 2015-11-21 23:51
一切尽在不言中...

{:3_52:}{:3_52:}{:3_52:}{:3_52:}{:3_52:}
作者: 火火火火鸟    时间: 2015-11-24 21:31
seahom007 发表于 2015-11-21 23:51
一切尽在不言中...

{:3_52:}{:3_52:}{:3_52:}{:3_52:}{:3_52:}
作者: MadeLife丶    时间: 2015-11-25 01:25
选择排序
作者: 火火火火鸟    时间: 2015-11-25 10:12
MadeLife丶 发表于 2015-11-25 01:25
选择排序

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

谢谢谢谢谢{:3_51:}
作者: 106105076    时间: 2015-11-27 22:28
这是冒泡吧??
作者: 罗文强    时间: 2015-11-28 00:44
这是选择排序
作者: iOS-lye    时间: 2015-11-28 00:55
这个是选择
作者: alen2015    时间: 2015-11-28 01:45
这是选择排序
作者: junjunzhang    时间: 2015-11-28 07:53
冒泡排序和选择排序都是通过双重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;
            
            }
        }
    }
}
作者: junjunzhang    时间: 2015-11-28 07:58
忘了给结论了,此处为选择排序
作者: 董棁    时间: 2015-11-28 08:09
选择排序吧
作者: SimonLo    时间: 2015-11-28 15:52
冒泡算法啊
作者: AGHM0312    时间: 2015-11-28 23:45
看内循环的做法, 应该是选择排序算法,如果我错了请指出,3Q
作者: guitarjason    时间: 2015-11-28 23:48
你确定你这不是水贴》?必须选择排序啊
作者: 独孤求傲    时间: 2015-11-28 23:50
这肯定不是冒泡排序,选择排序我还没学,所以我也不知道
作者: 火火火火鸟    时间: 2015-12-1 10:04
junjunzhang 发表于 2015-11-28 07:53
冒泡排序和选择排序都是通过双重for循环来实现。两者不同关键在于交换的依据不同。

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

楼主精辟
作者: 一枚小刁民    时间: 2015-12-1 11:20
选择排序         
作者: paul20150103    时间: 2015-12-1 12:34
谢谢分享
作者: 那些年的小马哥    时间: 2015-12-1 14:03
本帖最后由 那些年的小马哥 于 2015-12-1 14:04 编辑

由于没有选择出一个元素,这是冒泡排序 a =arry1;                arry1=arry1[j];                 
arry1[j]=a ;

这三行代码只是完成了元素交换



作者: ZXY66452    时间: 2015-12-1 17:06
冒泡排序
作者: 、Z    时间: 2015-12-1 22:47
不想说什么。就是正常化的选择排序把,思路理清楚了都差不多。找到自己最会用的就好了
作者: 15931110616    时间: 2016-1-4 13:45
选择排序吧
作者: 一步步往上爬    时间: 2016-1-4 14:31
上面的代码确实是冒泡排序 下面打印出来的时候 还得用一个for循环 这样最终结果才是冒泡排序后的结果
作者: cxk    时间: 2016-1-4 14:35
选择排序
作者: sunshine429    时间: 2016-1-4 23:07
选择排序~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2