| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 428 人关注过本帖, 1 人收藏
标题:求解冒泡排序中遇到的问题
取消只看楼主 加入收藏
编程2011
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:73
专家分:19
注 册:2011-3-3
结帖率:92%
收藏(1)
已结贴  问题点数:4 回复次数:2 
求解冒泡排序中遇到的问题
程序代码:
#include<iostream>
#include<iomanip>
using namespace std;
void B(int  r[],int );
#include<ctime>
#include<cstdlib>
int main()
{
       const int M=100000;
    int size;
    int A[M];
     srand(time(0));
    for(int y=1;y<M;y++)
    {  
       A[y]=1+rand()%100000;
    }
    cout<<"请输入要排序的范围数:";
    cin>>size;
    cout<<endl;
     time_t first,end;
     first=clock();
    B(A,size);
    end=clock();
    cout<<"所需的时间为: "<<double(end-first);

 return 0;
}
void B(int r[], int n)
{
    int temp;
    int exchange;
    int bound;
    exchange=n-1;                       //第一趟起泡排序的范围是r[0]到r[n-1]   
    while (exchange)                    //仅当上一趟排序有记录交换才进行本趟排序
    {
        bound=exchange;
        exchange=0; 
        for (int j=0; j<bound; j++)     //一趟起泡排序
        if (r[j]>r[j+1])
        {
          temp=r[j];
          r[j]=r[j+1];
          r[j+1]=temp;
          exchange=j;                   //记录每一次发生记录交换的位置
       }
    }
    for(int i=0;i<n;i++)
       cout<<r[i]<<setw(6);

}
假如你对随机产生的随机数进行排序,第一个数都是-858993460 其余的排序没错。为什么出现这种情况,请大家帮忙看看代码解释一下,谢谢了
2011-05-17 23:26
编程2011
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:73
专家分:19
注 册:2011-3-3
收藏
得分:0 
回复 2楼 寒风中的细雨
这程序有问题?
2011-05-18 00:07
编程2011
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:73
专家分:19
注 册:2011-3-3
收藏
得分:0 
回复 4楼 寒风中的细雨
非常感谢。对了
2011-05-18 00:15
快速回复:求解冒泡排序中遇到的问题
数据加载中...
 
   



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

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