• 冒泡法,改进冒泡法排序和反序算法


     

    #include <stdio.h>

     

    int sort_bubble(int arr[],int len);

    int sort_bubblemod(int arr[],int len);

    int reverse_half(int arr[],int len);

    void main()

    {

         //int num[10]={3,8,9,2,5,7,6,0,4,1};

         int num[10]={0,1,2,3,4,5,6,7,8,9};

     

         for (int i=0;i<10;i++)

         {

             printf("%d/t",num[i]);

         }

         int cnt;

         //cnt=sort_bubble(num,10);

         //cnt=sort_bubblemod(num,10);

         cnt=reverse_half(num,9);

         printf("交换次数:%d/n",cnt);

         for (i=0;i<10;i++)

         {

             printf("%d/t",num[i]);

         }

     

         //printf("Hello World");

         char a;

         scanf(&a);

    }

     

    int sort_bubble(int arr[],int len)

    {

         int cnt=0;

         for(int i=0;i<len-1;i++)

         {

             for(int j=i+1;j<len;j++)

             {

                  int tmp;

                  if(arr[j]>arr[i])

                  {

                       tmp=arr[j];

                       arr[j]=arr[i];

                       arr[i]=tmp;

                       cnt++;

                  }

             }

         }

         return cnt;

    }

     

    int sort_bubblemod(int arr[],int len)

    {

         int cnt=0;

         int tmp;

         for(int i=0;i<len-1;i++)

         {

             int k=i;

     

             for (int j=i+1;j<len;j++)

             {

                  if(arr[j]>arr[k])

                  {

                       k=j;

                  }

             }

     

             if(k!=i)

             {

                  tmp=arr[i];

                  arr[i]=arr[k];

                  arr[k]=tmp;

                  cnt++;

             }

         }

         return cnt;

    }

     

    int reverse_half(int arr[],int len)

    {

         int cnt=0;

         int tmp;

         for(int i=0;i<len/2;i++)

         {

             tmp=arr[i];

             arr[i]=arr[len-i-1];

             arr[len-i-1]=tmp;

             cnt++;

         }

         return cnt;

    }

  • 相关阅读:
    超棒的jQuery矢量地图生成插件 JQVAMP
    签名一年过期 项目导入出现 红叉叉
    invalid commandline parameter: Files\Android\androidsdk\tools/emulatorarm.exe 错误
    线性布局 相对布局 参数
    触摸事件 按下 移动 弹起
    Activity service 通信
    android view的setVisibility方法值的意思
    TextView 支持 html 图片显示
    布局动态添加 相对布局
    存储数据 SharedPreferences
  • 原文地址:https://www.cnblogs.com/oyjj/p/2132972.html
Copyright © 2020-2023  润新知