看流星社区

 找回密码
 注册账号
查看: 2192|回复: 0

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

[复制链接]

该用户从未签到

发表于 2013-5-22 10:01:35 | 显示全部楼层 |阅读模式
#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;
}
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-5-15 11:16

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表