展会信息港展会大全

C语言冒泡排序详解
来源:互联网   发布日期:2016-01-26 10:42:39   浏览:2046次  

导读:冒泡排序基本思想 将n个记录看作按纵向排列,每趟排序时自下至上对每对相邻记录进行比较,若次序不符合要 求(逆序)就交换。每趟排序结束时都能使排序范围内关键字最小的记录象一个气泡一样升到表上端的对应 ...

冒泡排序基本思想

将n个记录看作按纵向排列,每趟排序时自下至上对每对相邻记录进行比较,若次序不符合要 求(逆序)就交换。每趟排序结束时都能使排序范围内关键字最小的记录象一个气泡一样升到表上端的对应位置,整个排序过程共进行n-1趟,依次将关键字最 孝次孝第三小 的各个记录 冒到 表的第一个、第二个、第三个 位置上。

初态 第1趟 第2趟 第3趟 第4趟 第5趟 第6趟 第7趟

3812121212121212

2038202020202020

4620382525252525

3846253838383838

7438463838383838

9174384646464646

1291747474747474

2525919191919191

/*

Title: 冒泡排序

Author: Li Aimin

Date: May 2007

算法功能:冒泡排序算法实现将一个长度为n的线性表r上的所有元素按关键字升序排列。

*/

#include<stdio.h>

void bubblesort(int r[],int n)

{ /*elements are stored in r[1] to r[n]*/

int i,j,flag;

int temp;

flag=1;

i=1;

while((i<n)&&(flag==1)) /*外循环控制排序的总趟数*/

{ flag=0;

for(j=n;j>i;j--) /*内循环控制一趟排序的进行*/

if(r[j]<r[j-1]) /*相邻元素进行比较,若逆序就交换*/

{

flag=1;

temp=r[j];

r[j]=r[j-1];

r[j-1]=temp;

}

i++;

}

} /*bubblesort*/

void show(int r[] , int n)

{

/*elements are stored in r[1] to r[n]*/

int i;

for(i=1;i<=n;i++)

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

printf("n");

}

void main()

{

int a[9201],i;

for(i=0;i<9201;i++)

a[i]=9201-i;

//show(a,100000);

bubblesort(a,9200);

show(a,9200);

}

赞助本站

人工智能实验室

相关热词: 冒泡排序 C语言

相关内容
AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港