c语言各种常见排序(直接插入排序、折半插入排序、冒泡排序、选择排序、堆排序(1)

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

003int main()
004{
005    int L[11]={0,70,38,65,97,76,93,1,15,68,64}; //0不做排序只是当做哨兵,或者临时交换空间使用。
006    int i=0;
007    printf("未排序前序列:\n");
008    for(i=1;i<=10;i++)
009    {
010        printf("%d ",L[i]);
011    }
012    printf("\n-------------------------------------\n");
013    insertSort(L);  //直接插入排序
014    //BInsertSort(L); //折半插入排序
015    //bubbleSort(L);//冒泡排序
016    //selectSort(L); //选择排序
017    //heapSort(L,10); //堆排序
018    printf("排序后序列:\n");
019    for(i=1;i<=10;i++)
020    {
021        printf("%d ",L[i]);
022    }
023    return 0;
024}
025void insertSort(int L[11])//插入排序 插入排序的最差和平均情况的性能是O(n^2)
026{
027    int i=0,j=0;
028    for(i=2;i<=10;++i)
029    {
030        L[0]=L[i]; //监视哨
031        for(j=i-1;L[0]<L[j];--j)
032        {
033            L[j+1]=L[j]; //记录后移
034        }
035        L[j+1]=L[0];//插入记录
036    }
037}
038void BInsertSort(int L[11]) //折半查找排序
039{
040    int i=0,j=0,low=0,high=0,m=0;
041    for(i=2;i<=10;++i)
042    {
043        L[0]=L[i];         //监视哨
044        low=1;high=i-1;
045        while(low<=high){
046            m=(low+high)/2;   //折半
047            if(L[0]<L[m])
048                high=m-1;
049            else
050                low=m+1;
051        }
052        for(j=i-1;L[0]<L[j];--j)
053            L[j+1]=L[j]; //记录后移
054        L[high+1]=L[0]; //插入
055    }
056}
057void bubbleSort(int L[11])  //冒泡排序复杂度是O(n^2)
058{
059    int i=0,j=0;
060    for(i=1;i<=10;++i)
061    {
062        for(j=1;j<=10-i;++j)
063        {
064            if(L[j]>L[j+1])
065            {
066                L[0]=L[j];
067                L[j]=L[j+1];   //用辅助空间交换两个值
068                L[j+1]=L[0];
069            }
070        }
071    }
072}
073void selectSort(int L[11]) //选择排序 复杂度为:O(n^2)
074{
075    int i=0,j=0,min_idx=0;

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

table>

[外链图片转存中…(img-EvFTcEPg-1715740364500)]
[外链图片转存中…(img-f20mZKNL-1715740364500)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值