码迷,mamicode.com
首页 > 编程语言 > 详细

C语言实现冒泡排序法和选择排序法代码参考

时间:2016-07-30 16:42:20      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:

为了易用,我编写排序函数,这和直接在主调函数中用是差不多的。

  我认为选择排序法更好理解!请注意 i 和 j ,在写代码时别弄错了,不然很难找到错误!

冒泡排序法:

void sort(int * ar,int k) //ar指向数组名,k是元素个数
{
    int i,j,temp;
    for(i = 0; i < k - 1; i++){ //比较k-1趟就可以了
        for(j = 0; j < k - i -1; j++){
            if(ar[j] > ar[j + 1]){
                temp = ar[j];
                ar[j] = ar[j + 1];
                ar[j + 1] = temp;
            }
        }
    }
}
 //第二个循环解释:每趟排序后,ar[k - i - 1]就确定了,也就是j最大时,ar[j + 1]确定了。

 

选择排序法:

 1 void sort(int * ar,int k) //ar指向数组名,k是元素个数
 2 {
 3     int i,j,temp;
 4     for(i = 0; i < k - 1; i++){ //只要和k-1个元素比较就可以了
 5         for(j = i+1; j < k; j++){ 
 6             if(ar[i] > ar[j])
 7             {
 8                 temp = ar[i];
 9                 ar[i] = ar[j];
10                 ar[j] = temp;
11             }
12         }
13     }
14 }
15 //第二个循环中j = i + 1是为了让ar[j]和ar[i]进行比较,即ar[i + 1]和ar[i],对于第一个循环,如果没有j < k - 1的话,数组就会越界,这需要理解。

 

C语言实现冒泡排序法和选择排序法代码参考

标签:

原文地址:http://www.cnblogs.com/mrblug/p/5720973.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!