zoukankan      html  css  js  c++  java
  • 冒泡法,改进冒泡法排序和反序算法

     

    #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;

    }

  • 相关阅读:
    [LeetCode] 56. Merge Intervals 解题思路
    [LeetCode] 128. Longest Consecutive Sequence 解题思路
    [LeetCode] Subsets I (78) & II (90) 解题思路,即全组合算法
    linux安装PHP7以及扩展
    php安装composer
    细说PHP中strlen和mb_strlen的区别
    mysql一些简单操作
    mysql数据库使用Navicat时向Navicat导入sql文件时某字段过大时的处理
    JS中||的某些用法
    PHP验证身份信息
  • 原文地址:https://www.cnblogs.com/oyjj/p/2132972.html
Copyright © 2011-2022 走看看