| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 838 人关注过本帖
标题:排列问题!
只看楼主 加入收藏
ming206
Rank: 2
来 自:重庆
等 级:等待验证会员
威 望:3
帖 子:545
专家分:7
注 册:2005-8-2
收藏
得分:0 

#include"stdio.h"
#define N 5
/*************************
方法名:Asc
功能:以顺序排列
*************************/
void Asc(int *a,int n){
int i,j,temp;
for(i=0;i<n;i++)
for(j=n-1;j>i;j--)
if(*(a+j)<*(a+j-1)){
temp=*(a+j);
*(a+j)=*(a+j-1);
*(a+j-1)=temp;
}
}
/*
方法名:Desc
功能:以顺序排列
*/
void Desc(int *p,int n){
int i=n,j,temp;
for(;i>0;){
for(j=0;j<=i;j++)
if(p[j+1]>p[j]){
temp=p[j+1];
p[j+1]=p[j];
p[j]=temp;
}
i--;
}
}
/*********************
方法名:p
打印
**********************/
void p(int *p,int n){
int *pp=p;
int i=0;
for(;pp<p+n;pp++){
printf("MyArray[%d]=%d\n",i,*pp);
i++;
}
}
/*
main调用
*/
main(){
int aa[]={1,5,50,6,8};
int bb[]={6600,68,15,24,674,457,6};
int cc[]={1,5,8,60,4,3,90,2};
clrscr();
/*排序前数组*/
printf("排序前数组:\n");
p(aa,N);
printf("排序后数组:\n");

printf("\n\n");
Asc(bb,N);
p(bb,N);

printf("\n\n");
Desc(bb,N);
p(bb,N);

/*
可以多测试几个,数组长是不固定的。
*/

}


外贸综合平台:E贸通
2006-05-15 00:59
ming206
Rank: 2
来 自:重庆
等 级:等待验证会员
威 望:3
帖 子:545
专家分:7
注 册:2005-8-2
收藏
得分:0 
看数据结构中有更多的方法,有很多比这些排序要好得多,执行速度要快得多
建议在C中使用指针和数组结合。。。。。。

外贸综合平台:E贸通
2006-05-15 01:03
黔山菜鸟
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-5-12
收藏
得分:0 
用二叉排序树  再用中序遍历   

我为C狂  哈哈~~~~~~
2006-05-15 12:12
my1286
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-5-15
收藏
得分:0 
哎,听诸君一些我的头快晕已,实在不太明白,我才刚刚学C可能是还小吧,不过我认排序的话也要看对多大的数排序啊,小的就随便用那种吧,反正你有又感觉不出来,如果大的话,还是用快速的咯,他们说就这个好
小弟一些只是拿分而已,有请各个大侠指教。

2006-05-15 12:26
独角龙
Rank: 1
等 级:新手上路
帖 子:221
专家分:0
注 册:2006-5-5
收藏
得分:0 
俺刚学数据结构.很多算法都没掌握!
呵呵,回去啃去!!

奋斗改变一切!!
2006-05-15 21:00
快速回复:排列问题!
数据加载中...
 
   



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

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