冒泡排序法与插入排序法源代码

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

冒泡排序法及插入排序法

以上为算法流程图,以下为程序代码:

//冒泡排序法

#include

#include

#define Length 6 //可更改排序的个数

void main()

{

system("color 75"); //设置颜色以美观

int i,j;

int a[Length];

int t;

printf("冒泡排序法:请输入%d个整数:\n",Length); for(i=0;i

scanf("%d",&a[i]);

for(i=0;i

for(j=0;j

if(a[j]>a[j+1]) //这是按从小到大的排列顺序 {

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

printf("排序后:\n");

for(i=0;i

printf("%d ",a[i]);

printf("\n");

}

//插入排序法

#include

#include

#define Length 6 //可更改排序的个数

void main()

{

system("color 75"); //设置颜色以美观

int i,j;

int a[Length];

int t,k;

printf("插入排序法:请输入%d个整数:\n",Length); for(i=0;i

scanf("%d",&a[i]);

for (i=1;i<=Length-1;i++){ //进行插入排序

for(j=i-1;j>=0;j--){

if(a[j]

break;

}

if(j!=i-1){

t=a[i];

for(k=i;k>=j+1;k--)

a[k]=a[k-1];

a[j+1]=t;

}

}

printf("排序后:\n");

for(i=0;i

printf("%d ",a[i]);

printf("\n");

}

程序运行结果:

实验体会:

冒泡排序法(bubble sorting)是比较数组中相邻的两个数,如果第一个比第二个大,就交换位置,然后对每一对相邻的数重复该步骤,从开始第一对到结尾的最后一对。它需要用到双重循环:外层循环控制进行的轮数,内层循环控制每轮比较的次数冒泡排序比较稳定可靠,结构简单,不过运行速度较慢:一组已经基本排好序的数经过很少的轮数就可以排完,但是循环还是要进行,这样增加了大量操作数。

而插入排序法(insertion sorting)是检查每个数字,如果在它的左边的数字比它大,就交换位置,重复这个步骤,直到所有数的左边一个数比它自己小。插入排序也比较稳定可靠,不过数据的移动次数多,操作数也不少。

相关文档
最新文档