首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >排序算法(一)-----冒泡法

排序算法(一)-----冒泡法

作者头像
用户4148957
发布2022-06-14 08:31:25
发布2022-06-14 08:31:25
35400
代码可运行
举报
文章被收录于专栏:C/C++与音视频C/C++与音视频
运行总次数:0
代码可运行

冒泡法的本质就是相邻元素相互比较,比较大元素往上抛,正如气泡冒泡一下。故冒泡法得名。是交换法的一种。

代码语言:javascript
代码运行次数:0
运行
复制
/*该程序为最简单的冒泡法,不适用交换标志,使用两重循环,第一重循环我0~cn-1,第二重循环使用 i+1~ cn,
   交换元素使用i个跟第j个元素交换,其时间复杂度为O(n^2/2)*/
#include<stdio.h>
#define cnt 9
int b[cnt]={90,8,7,6,5,4,3,2,10};
void rearange(int b[],int k)
{  
	int i,j,qw=0;
    for(i=0;i<cnt-1;i++)
    for(j=i+1;j<cnt;j++)
    {  if(b[i]>b[j])
		{ 
		qw=b[i]; 
	    b[i]=b[j]; 
	    b[j]=qw;
		}
	}
}
void main(void)
{
   int qw=0;
	//int i,j,qw=0,k=0;
	printf("原数据如下:\n");
	while(qw<cnt)
   {
	   printf("%d\t",b[qw]);
		   qw++;
   }
	printf("\n");
	printf("the new rank is that:\n");
/*	for(i=0;i<cnt-1;i++)
    for(j=i+1;j<cnt;j++)
    {  if(b[i]>b[j])
		{ 
		qw=b[i]; 
	    b[i]=b[j]; 
	    b[j]=qw;
		printf("i=%d,j=%d\n",i,j);
        while(k<cnt)
	   {
			    printf("%d\t",b[k]);
		   k++;
		}
		k=0;
     printf("\n") ;
	  }
	}*/
	 qw=0;
	rearange(b,cnt);
    printf("重新排列后的数据如下:\n");
   while(qw<cnt)
   {
	   printf("%d\t",b[qw]);
		   qw++;
   }
   printf("\n");
}
代码语言:javascript
代码运行次数:0
运行
复制
附冒泡方法二: a[j]和a[j+1]交换。
i为:0~n-1;j<0~n-1-i.
void  rechange2(int a[],int n)
{
   int i,j;
   int temp;
   for (i=0;i<n-1;i++)
   	for(j=0;j<n-i-1;j++)
   	{
   	   if(a[j]>a[j+1]
   	   	{
	   	temp= a[j];
	   	a[j]=a[j+1];
	   	a[j+1]=temp;
   	   	}
   	}
	return;
}
为了减少交换次数,如果第一轮交换都不存在交换的话,说排序完成,不需要完成两轮循环
void  rechange3(int a[],int n)
{
   int i,j;
   bool exchange ;
   int temp;
   for (i=0;i<n-1;i++)
   {
   	 exchange=fasle;
   	for(j=0;j<n-i-1;j++)
   	{
   	   if(a[j]>a[j+1]
   	   	{
	   	temp= a[j];
	   	a[j]=a[j+1];
	   	a[j+1]=temp;
   	   	}
	    exchang=true;
   	}
	  if (!exchange)
	  	return;
   	}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-08-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档