黑马程序员技术交流社区

标题: 选择排序和冒泡排序 [打印本页]

作者: 向日葵的微笑    时间: 2015-10-29 22:25
标题: 选择排序和冒泡排序
????给数组arr[6]={1,2,4,3,8,5}从大到小排序
一、选择排序
int main(){
                 int arr[6]={1,2,4,3,8,5};
  
                           for(int i=0;i<5;i++){
                                       int tempIndexMax=i;

                                               for(int j=i+1;j<6;j++){

                                                               if(arr[j]>arr[tempIndexMax]){
                                                                               tempIndexMax=j;
                                                               }
                                                }
                                                                         int temp=arr[i];
                                                               arr[i]=arr[tempIndexMax];
                                                              arr[tempIndexMax]=temp;
                                                     }

                                for(int k=0;k<6;k++){
                                                printf("%d\t",arr[k]);
                                }
                                  return 0;
                        }


二、冒泡排序
                  int main(){
                       int arr[6]={1,2,4,3,8,5};
                          
                           for(int i=0;i<6;i++){
        
                                           for(int j=0;j<5-i;j++){
                                                      
                                                           if(arr[j]<arr[j+1]){
                                                                       int temp=arr[j];
                                                                       arr[j]=arr[j+1];
                                                                       arr[j+1]=temp;
                                                           }
                                            }
                                }
   
                                                      for(int k=0;k<6;k++){
                                                                printf("%d\t",arr[k]);
                                                   }
                                        return 0;
                            }
作者: lixp    时间: 2015-10-29 22:29
学习了,顺便问一下楼主你技术分和黑马币怎么上去的
作者: xu不是许    时间: 2015-10-29 22:32
同桌加油   
作者: 青菜CC    时间: 2015-10-29 22:34
加油美女!!
作者: ncrbot    时间: 2015-10-29 22:54
前排顶~~~~~~
作者: 784080960    时间: 2015-10-29 23:01
加油加油加油
作者: hm_pt    时间: 2015-10-29 23:18
这个排序什么时候用的多呢
作者: knight_zfh1288    时间: 2015-10-29 23:21
加油加油
作者: 张水    时间: 2015-10-29 23:32
很好呀  我们也在学习
作者: aidan    时间: 2015-10-30 00:00
加油加油
作者: cuifei    时间: 2015-10-30 12:41
赞赞赞赞赞赞赞,真好.
作者: zeng123    时间: 2015-10-30 13:23
66666666666666666
作者: Andy罗锟    时间: 2015-10-30 18:56
加油  ..  加油  
作者: 杨鹏飞    时间: 2015-10-31 21:11
很好,加油。
作者: 18120184391    时间: 2015-11-1 07:03
第一个选择排序中  第一个for循环的条件最好写成i<6-1  第二个for循环条件其实也是i<6-1 .而不是6.   下标法不推荐使用,直接交换即可,原因是会扰乱记忆.   最后注释呢  注释呢  注释呢  重要的说三遍
作者: 窝牛。    时间: 2015-11-1 19:58
可以可以.哈.
作者: aichaobao    时间: 2015-11-3 14:26
写的不错,有时间的话也可以看一下快速排序^^
作者: 亚东    时间: 2015-11-3 14:43
女程序猿  
作者: 陌忆    时间: 2015-11-3 14:46
原理是什么呢?




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