• 关于冒泡排序的改进


    1、原始冒泡排序

    /*冒泡排序后的顺序为从小到大*/

    void Bubble_Sort(int *arr,int len)
        {
            int i,j,exchange;
            for(i=0;i<len-1;i++)
               for(j=0;j<len-i-1;j++)
                  if(arr[j] > arr[j+1])
                    {
                        exchange = arr[j];
                        arr[j] = arr[j+1];
                        arr[j+1] = exchange;
                    }
    }

    2、改进的冒泡排序

    /*冒泡排序后的顺序为从小到大*/

    void Bubble_Sort(int *arr,int len)
    {
        int i,j,exchange;
        bool flag = true; //增设标志位,判断是否已经完成排序
        for(i=0; i<len-1 && flag; i++)
           {
                flag = false;
                for(j=0;j<len-i-1;j++)
                   if(arr[j] > arr[j+1])
                     { //如果本趟比较没有数据发生交换,说明排序已经完成
                       //则flag一直为false,从而退出循环,不再进行下一趟的比较
                          exchange = arr[j];
                          arr[j] = arr[j+1];
                          arr[j+1] = exchange;
                          flag = true;
                     }
          }
    }

    3、测试

    #include<stdio.h>
    #include<stdlib.h>

    /*将上面的函数放在这里*/

    int main()
       {
            int num;
            printf("请输入排序的元素的个数:");
            scanf("%d",&num);

            int i;
            int *arr = (int *)malloc(num*sizeof(int));
            printf("请依次输入这%d个元素(必须为整数):",num);
            for(i=0;i<num;i++)
               scanf("%d",arr+i);

            printf("冒泡排序后的顺序:");
            Bubble_Sort(arr,num);
            for(i=0;i<num;i++)
               printf("%d ",arr[i]);
            printf(" ");

            free(arr);
            arr = 0;
            return 0;
    }

  • 相关阅读:
    jumpserver sudo 权限控制模板
    nmap 端口扫描
    服务器常用性能测试脚本
    Mac 配置cron
    cURL的用法,加用户名和密码?
    mac 终端查看端口命令
    Mac电脑安装openresty
    BT详解,BT原理
    centos 7 添加swap
    centos 添加rpmfusion源,yum 安装 ffmpeg
  • 原文地址:https://www.cnblogs.com/wwhai/p/10269284.html
Copyright © 2020-2023  润新知