• C语言--冒泡排序和简答选择排序


    冒泡排序

    一种典型的交换排序
    类似水冒泡,大元素经不断的交换由水底慢慢的浮出
    从头到尾,循环比较两相邻的元素
        大的元素移到后面,小的放前面-每次循环,大的元素会排到最后

    代码如下: 

    1. #include
    2. #include
    3. //升序排序
    4. void Bubble_sort(int a[], int size){
    5. int i,j,temp;
    6. for(int i=0 ; i-1 ;i++) //size-1 : 不用和自己比较
    7. {
    8. int flag =0;//比较记号
    9. //在a[0]到a[size-i-1]之间比较,将最大的数放最后(即a[size-i-1])
    10. for(int j=0 ; j-1 ; j++)
    11. {
    12. if(a[j] > a[j+1])//比较,大的在后面
    13. {
    14. temp = a[j]; a[j]= a[j+1]; a[j+1]=temp;
    15. flag =1;
    16. }
    17. }
    18. //若flag为0,则在该轮次没有交换动作,说明排序已经完成,break跳出循环
    19. if(flag == 0 ) break;
    20. }
    21. }
    22. void main()
    23. {
    24. int a[10];
    25. printf("输入10个整形数据(整数):");
    26. for(int i=0;i<10 ; i++)
    27. scanf("%d",&a[i]);
    28. Bubble_sort(a,10); //排序处理
    29. printf("排序后的数组:\n");
    30. for(int i=0;i<10 ; i++)
    31. printf("%d ",a[i]);
    32. system("pause");//屏幕暂停
    33. }

    简单选择排序

    简单选择排序(Select Sort)示意图如下图所示。 

    代码如下:

    1. #include
    2. #include
    3. void SelectSort(int arr[],int n){
    4. //minIndex用于记录每一趟中最小元素的下标
    5. int i,j,temp,minIndex;
    6. /*
    7. 外层循环,用于控制第1层到第n-1轮排序
    8. 第i轮循环时,后面部分的元素的下标范围为(i-1) 到 (n-1)
    9. */
    10. for( i=1; i
    11. //将后面(未排序)部分的第1个元素赋予minIndex
    12. minIndex = i-1;
    13. for(j =i ; j < n ; j++ ){ //找到本轮循环中最小元素
    14. if( arr[j]
    15. minIndex = j;
    16. }
    17. }
    18. //若本轮中最小的元素不是后面部分的第1个元素,则需要交换元素
    19. if(minIndex != i-1 ){
    20. temp=arr[minIndex]; arr[minIndex]=arr[i-1]; arr[i-1]=temp;
    21. }
    22. }
    23. }
    24. void main(){
    25. int a[10];
    26. printf("输入10个整形数据(整数):");
    27. for(int i=0;i<10 ; i++)
    28. scanf("%d",&a[i]);
    29. SelectSort(a,10); //排序处理
    30. printf("排序后的数组:\n");
    31. for(int i=0;i<10 ; i++)
    32. printf("%d ",a[i]);
    33. printf("\n");
    34. system("pause");//屏幕暂停
    35. }

  • 相关阅读:
    五分钟上手IoT小程序
    C语言中关于#include的一些小知识
    C++智能指针
    这些ChatGPT旗下的AI工具你都认识吗?
    初入职场两三事【研发篇】
    Vue3 使用Element Plus表格单选带checkbox
    修炼k8s+flink+hdfs+dlink(一:安装flink)
    分布式消息队列RocketMQ详细下载安装教程
    Java8新特性之Stream流(含具体案例)
    java 的三种 Base64
  • 原文地址:https://blog.csdn.net/weixin_46858088/article/details/133889475