搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 设立标志位的方式对冒泡算法进行改进
标题:
设立标志位的方式对冒泡算法进行改进
只看楼主
geshuan
等 级:
新手上路
帖 子:3
专家分:0
注 册:2012-6-20
楼主
问题点数:0 回复次数:3
设立标志位的方式对冒泡算法进行改进
我就是不明白什么是标志位,怎么使用标志位
搜索更多相关主题的帖子:
标志
算法
2012-06-20 09:45
geshuan
等 级:
新手上路
帖 子:3
专家分:0
注 册:2012-6-20
第
2
楼
得分:0
大婶们啦,急求
2012-06-20 10:01
westfall999
等 级:
论坛游侠
威 望:
1
帖 子:40
专家分:101
注 册:2012-7-22
第
3
楼
得分:0
#define N 10
void BubbleSort(void)
{
int i,j,t,flag=1;
int data[10]={10,3,11,87,32,88,100,32,45,67};
for(i=1;i<N-1 &&flag==1;i++) //如果flag=0;说明剩下的数据已全部有序
{
flag=0; //这个就是标记位,冒泡排序有个特点,也就是当排序完某趟后可能数据已全部有序(或者原来就已经有序),不需再排序下去,节约时间
for(j=1;j<N-i;j++)
if(data[j]>data[j+1])
{
t=data[j]);
data[j]=data[j+1];
data[j+1]=t;
flag=1; //flag=1说明剩下的数据仍未完全有序
}
}
}
2012-07-22 22:35
westfall999
等 级:
论坛游侠
威 望:
1
帖 子:40
专家分:101
注 册:2012-7-22
第
4
楼
得分:0
补充下代码测试:
#include<stdio.h>
#define N 10
void BubbleSort(void)
{
int i,j,t,flag=1;
int data[10]={10,3,11,87,32,88,100,32,45,67};
for(i=0;i<N-1 &&flag==1;i++) //如果flag=0;说明剩下的数据已全部有序
{
flag=0; //这个就是标记位,冒泡排序有个特点,也就是当排序完某趟后可能数据已全部有序(或者原来就已经有序),不需再排序下去,节约时间
for(j=0;j<N-i-1;j++)
if(data[j]>data[j+1])
{
t=data[j];
data[j]=data[j+1];
data[j+1]=t;
flag=1; //flag=1说明剩下的数据仍未完全有序
}
}
for(i=0;i<N;i++)
printf("%d ",data[i]);
}
int main(void)
{
BubbleSort();
}
2012-07-22 22:43
4
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-371923-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 2.075475 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved