问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言排列问题

发布网友 发布时间:2022-05-20 12:46

我来回答

3个回答

热心网友 时间:2023-10-20 16:32

下面是C语言里面常用的三种排序方法,但愿对楼主有帮助,一、冒泡法(起泡法)算法要求:用起泡法对10个整数按升序排序。算法分析:如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中要进行n-j次两两比较。比较的顺序从前往后,经过一趟比较后,将最值沉底(换到最后一个元素位置),最大值沉底为升序,最小值沉底为降序。算法源代码: # include main() { int a[10],i,j,t; printf("Please input 10 numbers: "); /*输入源数据*/ for(i=0;i<10;i++) scanf("%d",&a[i]); /*排序*/ for(j=0;j<9;j++) /*外循环控制排序趟数,n个数排n-1趟*/ for(i=0;i*内循环每趟比较的次数,第j趟比较n-j次*/ if(a[i]>a[i+1]) /*相邻元素比较,逆序则交换*/ { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } /*输出排序结果*/ printf("The sorted numbers: "); for(i=0;i<10;i++) printf("%d ",a[i]); printf("\n"); } 算法特点:相邻元素两两比较,每趟将最值沉底即可确定一个数在结果的位置,确定元素位置的顺序是从后往前,其余元素可能作相对位置的调整。可以进行升序或降序排序。算法分析:定义n-1次循环,每个数字比较n-j次,比较前一个数和后一个数的大小。然后交换顺序。二、选择法算法要求:用选择法对10个整数按降序排序。算法分析:每趟选出一个最值和无序序列的第一个数交换,n个数共选n-1趟。第i趟假设i为最值下标,然后将最值和i+1至最后一个数比较,找出最值的下标,若最值下标不为初设值,则将最值元素和下标为i的元素交换。算法源代码: # include main() { int a[10],i,j,k,t,n=10; printf("Please input 10 numbers:"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i main() { int a[10],i,j,t; printf("Please input 10 numbers: "); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=1;i*外循环控制趟数,n个数从第2个数开始到最后共进行n-1次插入*/ { t=a[i]; /*将待插入数暂存于变量t中*/ for( j=i-1 ; j>=0 && t>a[j] ; j-- ) /*在有序序列(下标0 ~ i-1)中寻找插入位置*/ a[j+1]=a[j]; /*若未找到插入位置,则当前元素后移一个位置*/ a[j+1]=t; /*找到插入位置,完成插入*/ } printf("The sorted numbers: "); for(i=0;i<10;i++) printf("%d ",a[i]); printf("\n"); } 算法特点:每趟从无序序列中取出第一个数插入到有序序列的合适位置,元素的最终位置在最后一趟插入后才能确定位置。也可是先用循环查找插入位置(可从前往后或从后往前),再将插入位置之后的元素(有序列中)逐个后移一个位置,最后完成插入。该算法的特点是在寻找插入位置的同时完成元素的移动。因为元素的移动必须从后往前,则可将两个操作结合在一起完成,提高算法效率。仍可进行升序或降序排序。二、下面是三种排序的概念及其优缺点冒泡排序已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。首先比较a[1]与a[2]的值,若a[1]大于a[2]则交换两者的值,否则不变。再比较a[2]与a[3]的值,若a[2]大于a[3]则交换两者的值,否则不变。再比较a[3]与a[4],依此类推,最后比较a[n-1]与a[n]的值。这样处理一轮后,a[n]的值一定是这组数据中最大的。再对a[1]~a[n-1]以相同方法处理一轮,则a[n-1]的值一定是a[1]~a[n-1]中最大的。再对a[1]~a[n-2]以相同方法处理一轮,依此类推。共处理n-1轮后a[1]、a[2]、……a[n]就以升序排列了。优点:稳定,比较次数已知;缺点:慢,每次只能移动相邻两个数据,移动数据的次数多。选择排序已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。首先比较a[1]与a[2]的值,若a[1]大于a[2]则交换两者的值,否则不变。再比较a[1]与a[3]的值,若a[1]大于a[3]则交换两者的值,否则不变。再比较a[1]与a[4],依此类推,最后比较a[1]与a[n]的值。这样处理一轮后,a[1]的值一定是这组数据中最小的。再将a[2]与a[3]~a[n]以相同方法比较一轮,则a[2]的值一定是a[2]~a[n]中最小的。再将a[3]与a[4]~a[n]以相同方法比较一轮,依此类推。共处理n-1轮后a[1]、a[2]、……a[n]就以升序排列了。优点:稳定,比较次数与冒泡排序一样,数据移动次数比冒泡排序少;缺点:相对之下还是慢。插入排序已知一组升序排列数据a[1]、a[2]、……a[n],一组无序数据b[1]、b[2]、……b[m],需将二者合并成一个升序数列。首先比较b[1]与a[1]的值,若b[1]大于a[1],则跳过,比较b[1]与a[2]的值,若b[1]仍然大于a[2],则继续跳过,直到b[1]小于a数组中某一数据a[x],则将a[x]~a[n]分别向后移动一位,将b[1]插入到原来a[x]的位置这就完成了b[1]的插入。b[2]~b[m]用相同方法插入。(若无数组a,可将b[1]当作n=1的数组a)优点:稳定,快;缺点:比较次数不一定,比较次数越少,插入点后的数据移动越多,特别是当数据总量庞大的时候,但用链表可以解决这个问题。

热心网友 时间:2023-10-20 16:32

if(a[i]<a[i+1])其实是把最小向后移一位,for(i=0;i<k-1;i++)执行完之后是把最小的数移到了数组的最后,第一个for(k=10;k>0;k--)执行完之后,a数组中的数是由大到小的,但是printf("%4d",a[i]);相当于printf("%4d",a[k-1]);再加上for(k=10;k>0;k--)就把数组从后向前输出了,则输出的顺序就是由小到大了.下一个循环和这个一样的道理!你也可以在每次排完序,再单独一个循环输出,就和你想的一样了!

热心网友 时间:2023-10-20 16:33

程序是不是有个地方写错了
两处输出函数应该改成:
printf("%4d",a[k-1]);/*输出数组的各个数*/
这样就可以理解程序了
if(a[i]<a[i+1])就交换位置
就是把小的数冒泡到数组尾
输出的时候从尾开始输出
if(a[i]>a[i+1])同理
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 求百度云盘高清电影,各国高评分中文字幕电影,有的请回,追分。。。 求泰坦尼克号莱昂纳多演的 清晰度要高中文字幕 大谢大谢 求韩国电视剧《岬童夷》全集。清晰度要高一点的,有中文字幕。有的请百度云我,谢谢。 请问在哪里可以买到套套? 大家套套都是在什么地方买的 think pad sl400 27437hc这款本本怎么设置自动开机. 华硕P4V8X-X上前端总线400的CPU就完好,上前段总下533的COU打死停D0,求维修思路。 thinkpad SL400原厂配置的话装vista旗舰版跑得起来吗 sl400 27432gc系统能不能改装成win7 Windows 7最终版 高手进来帮助一下,优化XP系统 AMD A4-5300 和 I3 3220 哪个好? 单论cpu性能,注意是单论cpu性能,不超频,A4-5300的cpu性能比英特尔E5300如... 英特尔的G640和AMD的A4-5300哪个性价比更好一些? windows 8 RTM激活 AMD 5300K&#47;FM2 A4双核 与 英特尔G1630 哪个性能好? AMD 5600K FM2 A8四核(这款自带核显性能如何) 我装的是vista rtm 5840,c盘是dos,提示c盘空间不够,需要至少400兆,这是怎么回事? g1610+H61+核显 比 A4 5300+A55+核显 谁能告诉我这个主板的时钟发生器型号是什么 Win8 RTM什么意思 求高清中文字幕 求 罪恶王冠 和 刀剑神域 1080p超高清版本的地址,收藏用,高质量中文字幕的。谢谢啊 用绳子绑一个100斤重的实心铁球能沉到最深的海底吗? 在哪可以下载《暮光之城 新月》的高清晰中文字幕版?最好有全集 足球术语 高求超星神中文字幕 《谍影重重1伯恩的身份》高清晰中文字幕DVD版下载 篮球防守中各位置的作用 非诚勿扰2土豆高中文字幕高清在线观看 非诚勿扰2 DVD在线观看 非诚勿扰2迅雷下载 物体受到水向上的浮力,会给水大小相等向下的压力吗?若是,那为何当物块沉底时压力等于重力却大于浮力? 《木星上行》高清晰中文字幕在线百度影音观看 倒地铲射的足球术语 想从乐山到自贡去看灯会,有没有好的自助游攻略坐车,住宿,越详细越好 自贡最好玩的旅游景点有哪些 四川自贡旅游攻略 求推荐自贡一日游路线 准备去自贡耍两天,求推荐好吃好耍的地方,最好不要离自贡市区太远,有适合小朋友耍的就更好了。谢谢! 炉石传说橙卡怎么弄?,在哪里可以找到? 赛尔号手游橙色经验蛋卡包里是什么,谢谢 ios 怎么点击任何地方隐藏view iOS开发隐藏一个View是直接设置hidden属性,还是将frame设置为0