首页 > 编程语言 > 详细

c语言之排序

时间:2016-01-06 21:39:09      阅读:170      评论:0      收藏:0      [点我收藏+]

1.冒泡排序(一)

拿第I个数分别和后面的数比较,小的放在前面,第一次循环后,第一个数是最小的,第二次循环从第二个数开始比较,依次执行。

1 for(i=0;i<n-1;i++){
2         for(j=i+1;j<n;j++){
3         if(a[i]>a[j]){
4             t=a[i];
5             a[i]=a[j];
6             a[j]=t;
7             }
8         }    
9     }

2.冒泡排序(二)
拿前一个数和后一个数进行比较,把大数放在后面,第一次循环结束后,最大的数在最后一位,下一次循环还是从第一个数开始比较,依次执行。

for(i=0;i<n-1;i++){
        for(j=0;j<n-i-1;j++){
            if(a[j]>a[j+1]){
            t=a[j];
            a[j]=a[j+1];
            a[j+1]=t;
            }
        }
    }

3.选择排序
定义一个标记,首先放在第一个数上,然后依次和后面的数进行比较,如果比后面的数小的话,就把标记移动到该位置上,一次循环结束后判断该标记和初始标记值是否相同,不同就将该位置的数值进行交换,下一次循环从第二个数开始,依次执行。

 1 for(i=0;i<n-1;i++){
 2         k=i;
 3         for(j=i+1;j<n;j++){
 4             if(a[j]<a[k]){
 5                 k=j;
 6             }
 7         
 8         }
 9         if(i!=k){
10             temp=a[k];
11             a[k]=a[i];
12             a[i]=temp;
13         
14         }    
15     }

 4.插入排序

 

1 for(i=2;i<n+1;i++){
2         r[0]=r[i];
3         j=i-1;
4         for(;r[j]>r[0];j--){
5         r[j+1]=r[j];
6         }
7         r[j+1]=r[0];
8     }

 

c语言之排序

原文:http://www.cnblogs.com/jiangyicheng/p/5106723.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!