冒泡排序
来源:互联网 发布:全世界网络设墙的国家 编辑:程序博客网 时间:2024/06/11 01:35
#include "stdio.h"
void swap(int *a,int *b)
{
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
void bubblesort(int k[],int n)
{ /*冒泡排序*/
int i,j,tmp;
int flag = 1,cont = 0;
for(i=0;i<n && flag == 1;i++) //控制每趟往前推一个,即少比较一次
{
//flag = 0; //加上flag
for(j=0;j<n-i-1;j++) //从第一个开始,不断与相邻的值比较,并交换最值,一直推到最后,形如冒泡
{
cont++;
if(k[j]<k[j+1])
{
swap(&k[j+1],&k[j]);
flag = 1;
}
}
}
printf("\n循环比较次数:%d\n",cont);
}
int main()
{
int i,a[10] = {2,5,6,3,7,8,12,9,1,0};
printf("The data array is\n") ;
for(i=0;i<10;i++) /*显示原序列之中的元素*/
printf("%d ",a[i]);
bubblesort(a,10); /*执行冒泡排序*/
printf("\nThe result of bubble sorting for the array is\n");
for(i=0;i<10;i++)
printf("%d ",a[i]); /*输出排序后的结果*/
printf("\n");
return 0;
}
void swap(int *a,int *b)
{
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
void bubblesort(int k[],int n)
{ /*冒泡排序*/
int i,j,tmp;
int flag = 1,cont = 0;
for(i=0;i<n && flag == 1;i++) //控制每趟往前推一个,即少比较一次
{
//flag = 0; //加上flag
for(j=0;j<n-i-1;j++) //从第一个开始,不断与相邻的值比较,并交换最值,一直推到最后,形如冒泡
{
cont++;
if(k[j]<k[j+1])
{
swap(&k[j+1],&k[j]);
flag = 1;
}
}
}
printf("\n循环比较次数:%d\n",cont);
}
int main()
{
int i,a[10] = {2,5,6,3,7,8,12,9,1,0};
printf("The data array is\n") ;
for(i=0;i<10;i++) /*显示原序列之中的元素*/
printf("%d ",a[i]);
bubblesort(a,10); /*执行冒泡排序*/
printf("\nThe result of bubble sorting for the array is\n");
for(i=0;i<10;i++)
printf("%d ",a[i]); /*输出排序后的结果*/
printf("\n");
return 0;
}
0 0
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- UI组件:进度条ProgressBar及其子类
- Active Learning 主动学习
- org/apache/commons/lang/xwork/StringUtils
- App软件开发流程优化
- 将顺序表中的所有元素逆置
- 冒泡排序
- FragmentPagerAdapter和ViewPager实现滑动切换
- 初学mysql(八)-数据库之触发器
- 【洛谷 1613】跑路
- 关于天气程序项目的阶段性反思
- 常用的maven镜像中央库汇总
- VTK修炼之道5_Procedural Source Object
- Java String类深入理解
- 监控Linux环境下JVM应用内存的两种方法