栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言五大排序(选择、冒泡、插入、希尔、快速)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言五大排序(选择、冒泡、插入、希尔、快速)

C语言小白学习整理五大常用的排序方法:选择排序、冒泡排序、插入排序、希尔排序、快速排序。在此做个笔记,也欢迎大家参考治指正。

#include 

#define SIZE_NUM 8   


void Swap(int* num1, int* num2){
    int midValue = 0;
    midValue = *num1;
    *num1 = *num2;
    *num2 = midValue;
}


void Select_Sort(int* s , int n){
    int i, j;
    for(i = 0; i < n-1; i++)
        for(j = i+1; j < n; j++)
            if(s[i] > s[j])
                Swap(&s[i],&s[j]);
}


void MaoPao_Sort(int* s, int n){
    int i, j;
    for(i = 0; i < n-1; i++)
        for(j = 0; j < n-i-1; j++)
            if(s[j] > s[j+1])
                Swap(&s[j],&s[j+1]);

}


void Insert_Sort(int* s, int n){
    int i, j, midValue;
    for(i = 1; i < n; i++){
        midValue = s[i];
        j = i-1;
        while(midValue < s[j] && j >= 0){
            s[j+1] = s[j];
            j--;
        }
        s[j+1] = midValue; 
    }
}
    

void Shell_Sort(int* s, int n){
    int i, j, gap;
    for(gap = n/2; gap > 0; gap/=2){
        for(i = gap; i < n; i++)
            for (j = i - gap; j >= 0 && s[j] > s[j+gap]; j -= gap)
                Swap(&s[j],&s[j+gap]);
    }
        
}


void Quick_Sort(int *s , int left, int right){
    if(left < right){
        int i = left, j = right;
        int mid = s[i];
        while(i < j){
            while(mid < s[j] && j > left)
                j--;
            if(i < j)
                s[i++] = s[j];
            while(mid > s[i] && i < right)
                i++;
            if(i < j)
                s[j--] = s[i];
        }
        s[i] = mid;
        Quick_Sort(s, left, i);
        Quick_Sort(s, i, right);
    }
}


int main(){
    int Num_Group[SIZE_NUM];
    printf("enter 8 numbers:");
    for(int i = 0; i < SIZE_NUM; i++)
        scanf("%d",&Num_Group[i]);
    for(int i = 0; i < SIZE_NUM; i++)
        printf("%5d",Num_Group[i]);
    //Select_Sort(Num_Group, SIZE_NUM);
    //MaoPao_Sort(Num_Group, SIZE_NUM);
    //Insert_Sort(Num_Group, SIZE_NUM);
    //ShellSort(Num_Group, SIZE_NUM);
    //Quick_Sort(Num_Group, 0, SIZE_NUM);
    printf("n atfter sorted:n");
    for(int i = 0; i < SIZE_NUM; i++)
        printf("%5d",Num_Group[i]);

    return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/923127.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号