简要咨询咨询QQ网站导航网站搜索手机站点联系我们设为首页加入收藏 

C语言冒泡排序

来源:易贤网   阅读:1324 次  日期:2014-09-09 09:45:48

温馨提示:易贤网小编为您整理了“C语言冒泡排序”,方便广大网友查阅!

冒泡排序基本思想

将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);

}

更多信息请查看IT技术专栏

更多信息请查看网络编程
点此处就本文及相关问题在本站进行非正式的简要咨询(便捷快速)】     【点此处查询各地各类考试咨询QQ号码及交流群
上一篇:VB中Dim语句的功能及用法
下一篇:VC/MFC中如何自定义消息
易贤网手机网站地址:C语言冒泡排序
由于各方面情况的不断调整与变化,易贤网提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!