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

<17>【掌握】冒泡排序代码实现+【掌握】选择排序代码实现

时间:2015-07-07 19:06:07      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

#include <stdio.h>
void maoPao(int arr[],int len){

    int temp;
    //双重循环
    for(int i=0;i<len-1;i++){
    
        //因为i的值每变化一次,跑了一趟,按照冒泡的思想
        //有一个数已经下沉了
        //没有必要和已经有序的数据进行比较了
        //j<len-1-i;所以 j<len-1也可以,但是多跑会
        for (int j=0; j<len-1-i; j++) {
            
            if (arr[j]>arr[j+1]) {
                //交换 a[j] 和 a[j+1]的值
                // 加减法   异或   temp
                temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    
    }

}


int main(int argc, const char * argv[]) {
    
    int a[10]={1,200,23,45,12,34,19,4,388,63};
    //a[0] 1
    //&a[0]  地址
    //排序前
    for (int i=0; i<10; i++) {
        printf("%d\t",a[i]);
    }
    
    printf("\n");
    //进行排序
    maoPao(a, 10); //把数已经排玩序了
    //遍历数组
    for (int i=0; i<10; i++) {
        printf("%d\t",a[i]);
    }
    

    return 0;
}

 

【掌握】选择排序代码实现

 

#include <stdio.h>
/**
 *  选择排序
 */
void selectSort(int arr[],int len){

    //写双重循环
    //
    int temp;
    for (int i=0; i<len-1; i++) {
    
        for (int j=i+1; j<len; j++) {
        
            //交换的依据
            //
            if(arr[i]>arr[j]){
                //让arr[i] 和 arr[j]  进行交换
                temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
            
        }
        
    }


}

int main(int argc, const char * argv[]) {
    
    //定义一个数组
    int a[10]={23,12,4,67,20,100,21,45,3,28};
    //目的排序
    selectSort(a, 10);
    
    //遍历输出数组
    for (int i=0; i<10; i++) {
        printf("%d\t",a[i]);
    }
    
    
    return 0;
}
3    4    12    20    21    23    28    45    67    100    

 

<17>【掌握】冒泡排序代码实现+【掌握】选择排序代码实现

标签:

原文地址:http://www.cnblogs.com/kongweiiwei/p/4627683.html

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