• 排序算法的总结


    1.采样排序

    1. #include
    2. /*
    3. *原理:从头到尾搜寻,发现最大值比采样值大,则保存采样值和对应下标,
    4. *扫完一遍之后,把采样值和最后一个元素互换位置,注意最后元素的位置一直在变
    5. **/
    6. int main()
    7. {
    8. int a[10] = {9,0,1,2,3,4,5,6,7,8};
    9. size_t compare_times = 10 - 1;
    10. size_t index = 10;
    11. for(size_t t = 0; t < compare_times; t++)//把a[0]作为第一个采样点,和a[1]...开始往后比较,只需要比较9次
    12. {
    13. int sample = a[0];//把a[0]作为第一个采样点,sample保存采样值
    14. int sampleIndex = 0;//保存采样值下标
    15. for(size_t i = 1; i < index - t; i++)
    16. {
    17. if( sample < a[i])//直接用sample(a[0])值和a[1]...开始往后比较
    18. {
    19. sample = a[i];//比sample大,则sample值设置为当前采样点值
    20. sampleIndex = i;//存住最大采样值下标
    21. }
    22. }
    23. {//把本次循环取到最大样本和最后一个元素互换
    24. int temp = a[9-t];
    25. a[9-t] = sample;
    26. a[sampleIndex] = temp;
    27. }
    28. {//下面是遍历数组代码,以便演示排序过程
    29. printf("第%zu次排序结果: ",t);//%zu用来输出size_t 类型
    30. for(size_t i = 0; i < 10; i++)
    31. printf("%d ",a[i]);//%zu用来输出size_t 类型
    32. printf("\n");
    33. }
    34. }
    35. return 0;
    36. }

    2.冒泡排序

    1. #include
    2. /*
    3. *原理: 相邻的两个数比较,如果发现前面的数比后面的数大,则交换,
    4. *如此迭代比较,交换,一轮过后,尾部的元素一定是最大的
    5. **/
    6. int main()
    7. {
    8. int a[10] = {9,8,7,6,5,4,3,2,1,0};
    9. size_t compare_times = 10 - 1;
    10. size_t index = 10 - 1;
    11. for(size_t t = 0; t < compare_times; t++)//10个数只需要进行9次比较
    12. {
    13. for(size_t i = 0; i < index - t; i++)//每次一轮比较完,最后一个元素索引往前+1
    14. {
    15. if(a[i] > a[i+1])
    16. {
    17. int temp = a[i];
    18. a[i] = a[i+1];
    19. a[i+1] = temp;
    20. }
    21. }
    22. {//下面是遍历数组代码,以便演示排序过程
    23. printf("第%zu次排序结果: ",t);//%zu用来输出size_t 类型
    24. for(size_t i = 0; i < 10; i++)
    25. printf("%d ",a[i]);//%zu用来输出size_t 类型
    26. printf("\n");
    27. }
    28. }
    29. return 0;
    30. }

  • 相关阅读:
    【第八章】文件与文件系统的压缩、打包与备份
    2022谷粒商城学习笔记(五)文件上传功能
    Linux常用命令及项目部署
    【Rust光年纪】探秘Rust GUI库:从安装配置到API概览
    29-移动端开发
    【OpenGL ES】渲染管线
    redisson公平锁与非公平原理
    Spark学习笔记(三):使用Java调用Spark集群
    上传到服务的jar包怎么使用docker运行部署
    云原生的候选应用
  • 原文地址:https://blog.csdn.net/qq_50832904/article/details/126551196