| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2820 人关注过本帖, 1 人收藏
标题:快速排序源代码
取消只看楼主 加入收藏
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
结帖率:79.37%
收藏(1)
已结贴  问题点数:20 回复次数:8 
快速排序源代码
#include <stdio.h>
#include <stdlib.h>
FILE *fin,*fout;
void file_start()
{
if((fin=fopen("qsort.in","r"))==NULL)
{
printf("Cannot open this file!\n");
getchar();
exit(0);
}
if((fout=fopen("qsort.out","w"))==NULL)
{
printf("Cannot open this file!\n");
getchar();
exit(0);
}
}
void Qsort(int number[],int startPos, int endPos)
{
int i,j,temp;
temp=number[startPos];
i=startPos; j=endPos;
while(i<j)
{
while(number[j]>=temp && i<j)--j;
number[i]=number[j];
while(number[i]<=temp && i<j)++i;
number[j]=number[i];
}
number[i]=temp;
if(i-1>startPos) Qsort(number,startPos,i-1);
if(endPos>i+1) Qsort(number,i+1,endPos);
}
int main()
{
int number[100000]={0},n,i;
file_start();//方便输入输出,可以删除
fscanf(fin,"%d",&n);
for(i=0;i<n;i++)
fscanf(fin,"%d",&number[i]);
Qsort(number,0,n-1);
for(i=0;i<n;i++)
fprintf(fout,"%d ",number[i]);
system("pause");
return 0;
}
搜索更多相关主题的帖子: 源代码 
2010-12-23 19:48
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
不知道写得对不对?现在对10000个数排序是小于0.2秒的

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-12-23 19:49
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
我只是说这个快排代码写得对不对

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-12-23 19:54
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
回复 5楼 Devil_W
您的代码我已经看过了,但是请您评价一下,我的代码写得对吗?

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-12-23 20:06
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
无语,50W个数也能1秒

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-12-23 20:08
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
代码:
#include <stdio.h>
#include <stdlib.h>
FILE *fout;
void Qsort(int number[],int startPos, int endPos)
{
int i,j,temp;
temp=number[startPos];
i=startPos; j=endPos;
while(i<j)
{
while(number[j]>=temp && i<j)--j;
number[i]=number[j];
while(number[i]<=temp && i<j)++i;
number[j]=number[i];
}
number[i]=temp;
if(i-1>startPos) Qsort(number,startPos,i-1);
if(endPos>i+1) Qsort(number,i+1,endPos);
}
int main()
{
long number[500000]={0},n,i;
fout=fopen("qsort.out","w");
srand((unsigned long)time(0));
scanf("%d",&n);
for(i=0;i<n;i++)
number[i]=rand()%100001;
Qsort(number,0,n-1);
for(i=0;i<n;i++)
fprintf(fout,"%ld ",number[i]);
system("pause");
return 0;
}

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-12-23 20:10
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
100W你家有这么大的内存吗?-----

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-12-24 15:52
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
冒昧问一句,怎么对多个关键词排序

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-12-25 08:57
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
已经解决了,thanks

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-12-25 19:32
快速回复:快速排序源代码
数据加载中...
 
   



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

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