计算机软件基础-冒泡排序
2012-04-20 14:04
155 查看
/*
Title: 冒泡排序
Author: eman lee
算法功能:冒泡排序算法实现将一个长度为n的线性表r上的所有元素按关键字升序排列。
*/
#include<stdio.h>
void bubblesort(int r[],int n)
{ /*elements are stored in r[1] to r
*/
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
*/
int i;
for(i=1;i<=n;i++)
printf(" %d ",r[i]);
printf("\n");
}
void main()
{
int a[9]={0,38,20,46,38,74,91,12,25};
show(a,8);
bubblesort(a,8);
show(a,8);
}
Title: 冒泡排序
Author: eman lee
算法功能:冒泡排序算法实现将一个长度为n的线性表r上的所有元素按关键字升序排列。
*/
#include<stdio.h>
void bubblesort(int r[],int n)
{ /*elements are stored in r[1] to r
*/
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
*/
int i;
for(i=1;i<=n;i++)
printf(" %d ",r[i]);
printf("\n");
}
void main()
{
int a[9]={0,38,20,46,38,74,91,12,25};
show(a,8);
bubblesort(a,8);
show(a,8);
}
相关文章推荐
- 2008秋-计算机软件基础-冒泡排序
- 2008计算机软件基础 - 编程题 - 参考源程序
- 2008秋季-计算机软件基础-PPT课件-第四章 查找与排序
- 全国2005年4月高等教育自学考试计算机软件基础(二)试题
- [推荐]考中科院三个所的计算机试题范围(软件基础和硬件基础)
- 2008秋季-计算机软件基础-0917课堂用例(1)
- 2008秋-计算机软件基础-第三章习题参考答案 P111
- 计算机硬件软件dos基础常识
- 2008秋-计算机软件基础-单链表练习(1)
- 2008秋-计算机软件基础-多关键字排序
- 2008秋季-计算机软件基础-PPT课件-第一章 软件工程
- 2008秋季-计算机软件基础-0901课堂用例
- 2008秋季-计算机软件基础-0903课堂用例(2)
- 2008秋季-计算机软件基础-0917课堂用例(2)
- 计算机基础之计算机硬件软件数据结构
- 全国2002年4月高等教育自学考试计算机软件基础(二)试题
- 2008秋季-计算机软件基础-0910课堂用例(1)
- 2008秋-计算机软件基础- 实验一 参考源程序
- 2008秋季-计算机软件基础-0922课堂用例(1)
- 2008秋季-计算机软件基础-0825课堂用例