四种排序方法简单理解

  • 格式:doc
  • 大小:67.50 KB
  • 文档页数:8

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第十四次交换: 3 22 53 72 11 10 34 44 11 15 28 65……

第二趟排序: 3 10 22 53 72 11 34 44 11 15 28 65第三趟排序: 3 10 11 22 53 72 11 34 44 15 28 65……

最后趟排序: 3 10 11 11 15 22 28 34 44 53 65 72代码实现如下:

//powerd by 一意行者

#include

#define M 100

using namespace std;

int main ()

{

int a[M];

int n,i,j;

int temp=0; //定义一个用于大小数的交换的中间变量

cin>>n;

for(i=0;i

{

cin>>a[i]; //初始化数组

}

for(i=0;i

{

for(j=n-1;j>i;j--)

if(a[j]

{

temp=a[j];

a[j]=a[j-1];//将大数放到后面

a[j-1]=temp;

}

}

for(i=0;i

{

cout<

}

cout<

return 0;

}

第十五次交换: 3 10 11 15 72 53 44 34 28 22 11 65第十六次交换: 3 10 11 11 72 53 44 34 28 22 15 65第四趟排序: 3 10 11 11 72 53 44 34 28 22 15 65第十七次交换: 3 10 11 11 53 72 44 34 28 22 15 65……

最后趟排序: 3 10 11 11 15 22 28 34 44 53 65 72 //powerd by 一意行者

#include

#define M 100

using namespace std;

int main ()

{

int a[M];

int n,i,j;

int temp=0; //定义一个用于大小数的交换的中间变量

while(cin>>n)

{

for(i=0;i

{

cin>>a[i]; //初始化数组

}

for(i=0;i

{

for(j=i+1;j

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

{

temp=a[j];

a[j]=a[i];//将大数放到后面

a[i]=temp;

}

}

for(i=0;i

{

cout<

}

}

cout<

return 0;

}

//powerd by 一意行者

#include

#define M 100

using namespace std;

int main ()

{

int a[M];

int n,i,j;

int temp=0;//定义一个用于大小数的交换的中间变量

int flag=0;//定义一个标记

while(cin>>n)

{

for(i=0;i

{

cin>>a[i]; //初始化数组

}

for(i=0;i

{

temp=a[i];

flag=i; //标记第一个元素

for(j=i+1;ja[j])

{

temp=a[j];

flag=j;//标记出最小的那个数的位置

}

a[flag]=a[i];//将数依次赋值找出最小的那个数

a[i]=temp;

}

for(i=0;i

{

cout<

}

}

cout<

return 0;

}

从上面的叙述可见,它的基本工作原理是抽出牌,在前面的牌中寻找相应的位置插入,然后继续下一张。

//powerd by 一意行者

#include

#define M 100

using namespace std;

int main ()

{

int a[M];

int n,i;

int temp;//定义一个中间变量用来保存待交换数据

int m; //用来记录每次的循环次数

while(cin>>n)

{

for(i=0;i

{

cin>>a[i]; //初始化数组

}

for(i=1;i

{

temp=a[i];

m=i-1; //i前面的点

while(m>=0&&temp

{

a[m+1]=a[m];//将较大的数据放到后面去

m--;

}

a[m+1]=temp;//每次都把较小的数放到前面

}

for(i=0;i

{

cout<

}

}

cout<

return 0;

}

注!由于笔者水平有限,暂时只能写出如上四种。且上述方法必有疏漏之处,还请读者斧正!以上代码运行环境为VC6.0或dev c++。QQ交流平台:1536538355(一意行者)