用选择法对10个整数数组从小到大排序序

实现十个任意整数从小到大的排序算法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
21页免费16页免费13页免费5页¥2.004页免费 18页免费12页2下载券10页1下载券4页免费4页免费
实现十个任意整数从小到大的排序算法|
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢//运用直接 选择排序法对整数数组元素按照从小到大顺序排序
#include&iostream.h&
#define SIZE 8
int main()
int a[SIZE]={18,35,36,61,9,112,77,12};
//输出原数组
for(int i=0;i&=SIZE-1;i++)
cout&&a[i]&&
//对数组进行排序
for(int pass=0;pass&=SIZE-1;pass++)
for(int j=pass+1;pass&=SIZE-1;j++)
if(a[pass]&a[j])
hold=a[pass];
a[pass]=a[j];
//输出当前的结果
cout&&&After NO.&&&pass+1&&&scan:&;
for(int index=0;index&=SIZE-1;index++)
if(index==pass+1) //index的值是输出元素位置,pass是输出的行数。
cout&&&\t&&&&[&&&a[index];
cout&&&\t&&&a[index];
cout&&&]&&&
cout&&&After sorting:\t&;
for(int index=0;index&=SIZE-1;index++)
cout&&&\t&&&a[index];
不知道为什么,程序运行时总是提醒内存不能Read~~~~哪位大神能帮帮忙
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:110568次
积分:3458
积分:3458
排名:第3317名
原创:236篇
转载:49篇
评论:92条
(4)(2)(5)(14)(12)(6)(7)(3)(13)(35)(2)(4)(14)(7)(9)(19)(7)(16)(43)(50)(10)(3)热门日志推荐
人人最热标签
分享这篇日志的人常去
北京千橡网景科技发展有限公司:
文网文[号··京公网安备号·甲测资字
文化部监督电子邮箱:wlwh@··
文明办网文明上网举报电话: 举报邮箱:&&&&&&&&&&&&
请输入手机号,完成注册
请输入验证码
密码必须由6-20个字符组成
下载人人客户端
品评校花校草,体验校园广场1、任意输入10个整数,用交换排序法将它们按从小到大的顺序排序并输出。_百度知道
1、任意输入10个整数,用交换排序法将它们按从小到大的顺序排序并输出。
两个for循环嵌套就出来了int[] nN = {1,2,3,4,5,6,7,8,9,0};int nT = 0;for (int i=0;i&10;i++){
for (int j=0;j&10;j++)
if (nN[i]&nN[j])
nT = nN[i];
nN[i] = nN[j];
nN[j] = nT;
其他类似问题
按默认排序
其他2条回答
合并排序(MERGE SORT)是又一类不同的排序方法,合并的含义就是将两个或两个以上的有序数据序列合并成一个新的有序数据序列,因此它又叫归并算法。它的基本思想就是假设数组A有N个元素,那么可以看成数组A是又N个有序的子序列组成,每个子序列的长度为1,然后再两两合并,得到了一个 N/2 个长度为2或1的有序子序列,再两两合并,如此重复,值得得到一个长度为N的有序数据序列为止,这种排序方法称为2—路合并排序。 例如数组A有7个数据,分别是: 49 38 65 97 76 13 27,那么采用归并排序算法的操作过程如图7所示: 初始值 [49] [38] [65] [97] [76] [13] [27] 看成由长度为1的7个子序列组成 第一次合并之后 [38 49] [65 97] [13 76] [27] 看成由长度为1或2的4个子序列组成 第二次合并之后 [38 49 65 97] [13 27 76] 看成由长度为4或3的2个子序列组成 第三次合并之后 [13 27 38 49 65 76 97] 合并算法的核心操作就是将一维数组中前后相邻的两个两个有序序列合并成一个有序序列。合并算法也可以采用递归算法来实现,形式上较为简单,但实用性很差。合并算法的合并次数是一个非常重要的量,根据计算当数组中有3到4个元素时,合并次数是2次,当有5到8个元素时,合并次数是3次,当有9到16个元素时,合并次数是4次,按照这一规律,当有N个子序列时可以推断出合并的次数是X(2 &=N,符合此条件的最小那个X)。 其时间复杂度为:O(nlogn).所需辅助存储空间为:O(n)归并算法如下:long merge(long *A,long p,long q,long r) { long n1,n2,i,j,k; long *L,*R; n1=q-p+1; n2=r-q; L=(long *)malloc((n1+2)*sizeof(long)); R=(long *)malloc((n2+2)*sizeof(long)); for(i=1;i&=n1;i++) L=A[p+i-1]; for(j=1;j&=n2;j++) R[j]=A[q+j]; L[n1+1]=R[n2+1]=RAND_MAX; i=j=1; for(k=p;k&=r;k++) { if(L&=R[j]) { A[k]=L; i++; } else { A[k]=R[j]; j++; } } free(L); free(R); return 0; } long mergesort(long *A,long p,long r) {
if(p&r) { q=(p+r)/2; mergesort(A,p,q); mergesort(A,q+1,r); merge(A,p,q,r); } return 0; }
用VB?有排序法 和
你在百度搜索一下就有,很方便。我们的课本上面有例题..《VB程序设计》 王栋 著 清华大学出版社
交换排序的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁用起泡法对10个数排序 从小到大_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:257,027贴子:
用起泡法对10个数排序 从小到大收藏
#include&&stdio.h&
void&main()
{
int&a[10];
inti,j,t;
printf(&input&10&number:&\n&);
for(i=0;i&10;i++)
&&&scanf(&%d&,&a);
&&printf(&\n&);
for(j=0;j&9;j++)
&&for(i=0;i&9-j;i++)
&&&if(a+a[i+1])
&&&&&{
&&&&&&&t=a;&
&&&&&&&a=a[i+1];
&&&&&&&&a[i+1]=t;
&&&&&&&}
&&&&&printf(&the&sorted&numbers:\n&);
&&&&&&for(i=0;i&10;i++)
&&&&&&&&printf(&%d&,a);
&&printf(&\n&);
}
给这个程序加上注释,特别是
for(i=0;i&10;i++)
&&&scanf(&%d&,&a);
&&printf(&\n&);
for(j=0;j&9;j++)
&&for(i=0;i&9-j;i++)
&&&if(a+a[i+1])
&&&&&{
&&&&&&&t=a;&
&&&&&&&a=a[i+1];
&&&&&&&&a[i+1]=t;
&&&&&&&}
看不太明白
for(j=0;j&9;j++)
&&for(i=0;i&9-j;i++)
&&&if(a+a[i+1])
是啊!我也不太懂!哪位大哥大姐赐教一下!
for(i=0;i&10;i++)&循环10次
&scanf(&%d&,&a);&给变量赋值
&printf(&\n&);&换行
for(j=0;j&9;j++)&循环8次
&for(i=0;i&9-j;i++)&循环(每次循环把第一个数字打掉,意思就是不进行循环)
&if(a+a[i+1])如果当前数字大于。。。。。。你这都写错了,我倒~&
&{&
&t=a;&
&a=a[i+1];&
&a[i+1]=t;&
&}
这样的
if(a[j]&a[j+1])&//如果当前数字大于下一个数字,就交换
{
k=a[j];
a[j]=a[j+1];
a[j+1]=k;
}
意思是把循环一次后把最大的数字放到最后,然后在循环
到第8次就排序好了
加我QQ一起研究
请LZ先搞清楚冒泡法的原理
登录百度帐号我的游戏推荐游戏
后查看最近玩过的游戏
为兴趣而生,贴吧更懂你。或}

我要回帖

更多关于 sql从小到大排序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信