您的位置:首页 > 编程语言 > C语言/C++

四种经典排序 冒泡,快排,插入,选择 C++实现

2016-10-22 14:52 423 查看
2016.8.23 C++

冒泡排序:
相邻两个元素做比较,满足要求,互换元素
void sortPole(){
    int a[8]={5,10,9,2,3,4,6,7};
    for (int i=1; i<8; i++) {//
        for (int j=0; j<8-i; j++) {
            if (a[j]<a[j+1]) {
                int temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }
    for (int i=0;i<8 ; i++) {
        cout<<a[i]<<endl;
    }
}
插入排序
void sortCharu(){
    int a[8]={4,5,6,3,7,8,1,2};
    for (int i=1; i<8; i++) {
        int j=0;
        while (j<i&&a[j]<=a[i]) {
            j++;
        }
        if (j<i) {
            int k=i;
            int temp=a[i];
            while (k>j) {
                a[k]=a[k-1];
                k--;
            }
            a[k]=temp;
        }
    }
    for (int i=0; i<8; i++) {
        cout<<a[i]<<endl;
    }
}
选择排序(变相的冒泡排序)
void sortSelect(){
    int a[8]={4,5,6,3,7,8,1,2};
    for (int i=0; i<8; i++) {
        // 每次让第一个元素为最小或最大
        for (int j=i+1; j<8; j++) {
            int index=i;
            if (a[index]>a[j]) {
                index=j;
            }
            if (index!=i) {
                int temp=a[i];
                a[i]=a[index];
                a[index]=temp;
            }
        }
    }
    for (int i=0; i<8; i++) {
        cout<<a[i]<<endl;
    }

}
快速排序:
void sortSupai(int *arr,int low,int high){
    if (low>=high) {
        return;// 控制结束递归
    }
    int first=low;//设置最低点
    int last=high;
    int key=arr[first];// 设置key值
    while (first<last) {
        while (first<last&&arr[last]>=key){
            --last;
        }
        arr[first]=arr[last];
        while (first<last&&arr[first]<=key){
            ++first;
        }
        arr[last]=arr[first];
    }
    arr[first]=key;
    sortSupai(arr, low,first-1);
    sortSupai(arr, first+1,high);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐