您的位置:首页 > 编程语言 > C语言/C++

C++的擂台法排序问题。

2011-10-31 20:25 253 查看
今天学生学习到了擂台法排序。擂台法排序比前一种数组排序的优越处在于,它简化了计算机的运算过程。以擂台的理念将每一次对比中选出最小的一个进行标记,然后放在最初而并不是像数组一次一次的选出来,一次一次的放到最初或是最末。

比如:

#include <iostream.h>

void main()

{

 int c,min;//与单纯数组相比,多定义一个字符变量。

int a[5]={6,5,7,4,2};//定义一个数组,包括6,5,7,4,2几个数字。

 for(int i=0;i<4;i++)//for总循环

{

  min=i;//将字符“i”复制到min变量中

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

{

if(a[min]>a[j])

{

  min=j;//将字符“j”复制到min变量中

}

}

 c=a[min];//将两个数组中的数值进行交换。

a[min]=a[i];

a[i]=c;

}

for(int k=0;k<5;k++)

{

  cout<<a[k]<<endl;//

}

}

输出结果为  2,4,5,6,7

在一个回合中,以擂台的理念将每一次对比中选出最小的一个进行标记,放在数组中的最初或是最末。比单纯的数组循环方便快捷,简化了计算机的运算过程,方便于上千的数字进行排序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ c