| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1338 人关注过本帖
标题:[原创]排序任意一列整数(C原代码供大家使用)
只看楼主 加入收藏
C爷们
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-8-5
收藏
 问题点数:0 回复次数:18 
[原创]排序任意一列整数(C原代码供大家使用)
*/ --------------------------------------------------------------------------------------
*/ 出自: 编程中国 http://www.bc-cn.net
*/ 作者: C爷们 E-mail:kezi1987@126.com QQ:263877792
*/ 时间: 2007-8-5 编程论坛首发
*/ 声明: 尊重作者劳动,转载请保留本段文字
*/ --------------------------------------------------------------------------------------
此程序是使一列整数数由大到小重新排序.
当输入任意个数的一列整数数后,程序会自动检验数列的大小,并以最快的读取速度用起泡法排序.但输入的数据要介于正负32767之间,个数小于200(当大于200时,见程序第三行说明),点击回车输入每个数.下面是这个程序的源代码,欢迎大家对此程序进行改进:
#include<stdio.h>
void main()
{
int a[200],x,n;   /*200是未排数的最大个数,可以修改*/
register int i=0,j;
  for(printf("lank numbers from big to smell\nafter typed each number,type \"Enter\".by this way,you can enter the number\neach one must be smller than32767 and when you want to end up entering you can press 32767 and then press \"enter\".\nyour numbers:\n");printf("the %d number is ",i+1),scanf("%d",a+i),a[i]!=32767;i++)
n=i+1;
for(i=0;i<=n-2;i++)
for(j=0;j<=n-i-1;j++)
if (a[j-1]<a[j])
{x=a[j];
a[j]=a[j-1];
a[j-1]=x;
}
printf("what you want is ");
printf("\n");
for(i=0;i<=n-1;i++)
printf("the %d=\'%d\' ",i+1,a[i]);
}

[此贴子已经被作者于2007-8-5 14:17:09编辑过]

搜索更多相关主题的帖子: 整数 代码 中国 
2007-08-05 11:50
星星鱼虾蟹
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2007-6-2
收藏
得分:0 

唉,不就起泡排序嘛.有什么好讲的,很多书都有啊...还有这算法不是你想的吧,作者不是你.


2007-08-05 15:31
AQcdr
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2004-8-22
收藏
得分:0 
就是

------------------------------------------------ 阿庆AQcdr
2007-08-05 16:02
bupthehe
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-8-2
收藏
得分:0 
精神可嘉,值得鼓励,希望能写出一些有使用价值的DD
2007-08-05 16:16
jackys2006
Rank: 1
等 级:新手上路
帖 子:195
专家分:0
注 册:2006-3-10
收藏
得分:0 
for(i=0;i<=n-2;i++)
for(j=0;j<=n-i-1;j++)
if (a[j-1]<a[j])
{ x=a[j];
a[j]=a[j-1];
a[j-1]=x;
}
这段经典代码,闭着眼睛也写出来了

所谓 以最快的读取速度用起泡法排序
最快在哪里?

2007-08-05 18:59
李天飞
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-8-2
收藏
得分:0 
整的挺隆重
2007-08-05 19:46
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 

冒泡排序时间效率比较低,请楼主看看这个吧
void qsort(int key[],int low,int high)
{ /*快速排序*/
int i=low,j=high,tag;

if (low<high)
{
tag=key[low];
do
{
while (key[j]>tag && i<j) j--;

if (i<j)
{
key[i]=key[j];
i++;
while (key[i]<=tag && i<j) i++;
if (i<j)
{
key[j]=key[i];
j--;
}
}
}while (i<j);

key[i]=tag;
qsort(key,low,j-1);
qsort(key,i+1,high);
}
}


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-06 09:03
C爷们
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-8-5
收藏
得分:0 
你们别这样好吧,俺是初学者,哪像你们这些老鸟。你们应该多励鼓励我啊。
2007-08-08 09:39
C爷们
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-8-5
收藏
得分:0 
自己第一次作个有用的程序,觉得有点用就传上来给你们用,还遭到这么多批判。
虽然里面的有些模块式早就有的,但这个程序是我做的,当然算是原创。就像牛顿第一定律是前人试验的结论但是牛顿总结了一下,就是他自己的原创了。
2007-08-08 09:51
红烟圈
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-8-8
收藏
得分:0 
以下是引用jackys2006在2007-8-5 18:59:12的发言:
for(i=0;i<=n-2;i++)
for(j=0;j<=n-i-1;j++)
if (a[j-1]<a[j])
{ x=a[j];
a[j]=a[j-1];
a[j-1]=x;
}
这段经典代码,闭着眼睛也写出来了

所谓 以最快的读取速度用起泡法排序
最快在哪里?

for(j=1;j<=n-i;j++)
j=0的话 j-1=?

2007-08-08 10:05
快速回复:[原创]排序任意一列整数(C原代码供大家使用)
数据加载中...
 
   



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

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