| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 573 人关注过本帖
标题:设立标志位的方式对冒泡算法进行改进
只看楼主 加入收藏
geshuan
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-6-20
收藏
 问题点数:0 回复次数:3 
设立标志位的方式对冒泡算法进行改进
我就是不明白什么是标志位,怎么使用标志位
搜索更多相关主题的帖子: 标志 算法 
2012-06-20 09:45
geshuan
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-6-20
收藏
得分:0 
大婶们啦,急求
2012-06-20 10:01
westfall999
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:40
专家分:101
注 册:2012-7-22
收藏
得分: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
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:40
专家分:101
注 册:2012-7-22
收藏
得分: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
快速回复:设立标志位的方式对冒泡算法进行改进
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045815 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved