| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1338 人关注过本帖
标题:[原创]排序任意一列整数(C原代码供大家使用)
取消只看楼主 加入收藏
C爷们
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-8-5
收藏
 问题点数:0 回复次数:8 
[原创]排序任意一列整数(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
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
C爷们
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-8-5
收藏
得分:0 
回复:(星星鱼虾蟹)以下是引用C爷们在2007-8-8 9:51...
别闹了,我自己写的不是抄的就是原创,我的所有的书上都没有这个程序.谁说冒泡别人不能用的.我不想争论这种没意思的话题,人嘴两张皮,随便你怎么说.不论你再说什么我都不会回复了,因为真的很没意思.
2007-08-09 09:41
C爷们
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-8-5
收藏
得分:0 
回复:(jackys2006)for(i=0;i
最快就是在于它直接从寄存起里存取数据,如果需要排列的数很多的话,我想效率就回体现出来.
2007-08-09 09:45
C爷们
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-8-5
收藏
得分:0 
回复:(红烟圈)以下是引用jackys2006在2007-8-5 18:...
呵呵,我早就注意到这个问题了,j不可能等于0的.
2007-08-09 09:47
C爷们
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-8-5
收藏
得分:0 
以下是引用卧龙孔明在2007-8-6 9:03:27的发言:

冒泡排序时间效率比较低,请楼主看看这个吧
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);
}
}

呵呵,有些没看明白,high,low这两个参数是什么意思啊.你好象没写全啊:do
{
while (key[j]>tag && i<j) j--;
循环语句没了!

[此贴子已经被作者于2007-8-9 12:09:46编辑过]

2007-08-09 09:51
C爷们
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-8-5
收藏
得分:0 
回复:(bupthehe)精神可嘉,值得鼓励,希望能写出一...
呵呵,刚学么,能做出有价值的不多.不过你不要看不起排序啊,我想把那程序改进,扩大范围,能为浮点排序,能为虚数排序.而且要提高效率(就不能用起泡了),不浪费一位内存.单丛这一点我就可以申请专利了吧,呵呵.
2007-08-09 09:57
C爷们
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-8-5
收藏
得分:0 
回复:(ConZhang)自己是菜鸟就不要太张扬了么?像我...

有道理,呵呵,我還是好好的學。作出一個你們都做不出來的程序法上來。

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



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

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