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

冒泡排序和选择排序的效率问题26

发布网友 发布时间:2023-09-29 22:48

我来回答

2个回答

热心网友 时间:2024-12-12 18:38

选择排序总是会比冒泡排序效率高,因为选择排序每轮至多只交换1欢,但从算法角度考虑,时间复杂度并没有什么改进,因为都是O(n^2)算法!追问我这个算选择么

追答应该是吧,冒泡排序遇到一个需要交换的就交换一次。
遇到比当前最大值(降序)大的,或比当前最小值小的升序就交换一次。

选择每次选一个最大值(降序)或最小值交换(升序)。
你这个明显是这么做的!

不过冒泡的改进算法效率也不低。就是记录交换次数的方法。

选择排序由于每次只交换一个,比简单的冒泡效率高。
但是你这个效率也不是很好!

好一点的选择排序,
只需要记录最大值(降序)或最小值交换(升序)的位置,
就行了,不要赋值这一步了。

另外C数组下标,都是从0开始计数的;
所以如无特殊需要。一般从0开始!
你这里11个字符只有1~10 是有用数据
第0个字符没有用到!
只有某些比较原始的,插入排序算法,才是从1开始的;0留出来另有用途(是叫哨兵吧!)。

由于你这里是字符数组,
所以算法上最好的,不一定就是最好的!

从算法来说,下面这样的小小改动是比较好的!
for(i=1;i<11;i++)//控制被比较数滑动, .......... 一共进行10轮比较。
{
k=i; //.......k就是最大值的下标,先假设最大值在i;
for(j=i+1;j<11;j++) //控制比较.............比较 10-i次;
if(str[k]<str[j])k=j; //改进的选择排序算法。这个是降序,选最大的,只有遇到更大的,才改变k!
if(k!=i) //i是最大值时不交换;在这里使用,提高不了多少效率,只是从算法上说更好些!
{ t=str[i];str[i]=str[k];str[k]=t; }//最大值从k,交换到i;这一步没什么花样!
}
更好的选择排序,是希尔排序(shellsort)或者叫歇尔排序,
最好的希尔排序,时间复杂度O(N^(4/3));
这个就看数据结构和算法方面的书吧!
少了 k=i;//这一步,可是内循环里 多了这么多代码 str[i]<str[j]?t=str[i],k=i:t=str[j],k=j;
虽然用了?运算符可是,至少需要两个赋值操作。
这里数据尺寸较小不算什么,一旦数组中的数据尺寸较大就很不划算了!
k=i 就不同了,不管数据如何,只是一个整数赋值操作而已。
最好的内部排序算法好像是快速排序吧!
最好的外部排序算法是归并排序!

热心网友 时间:2024-12-12 18:38

经典排序之冒泡排序

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我网贷一万,手续费300,分24期,每期506.67,请问怎么计算月息,和年利率... 多普达手机铃音多普达手机铃声 【车载软件推荐】有车一族必备软件有哪些?好用的车主必备app 我画画时常被说我画画不动脑筋,弱弱的问一句,画画怎样动脑筋? 三星手机如何设置时间在桌面显示? 精确到十分位,要看小数点右边第一位 对吗 要把一个小数精确到十分位,就要看这个小数的( )A.十分位B.百分位C... 黑米算不算粗粮 存定期协议利率选是还是否? 同城上那些卖二手ndsi的是真的吗? C语言中的冒泡改进方法 谁能讲一下冒泡排序原理?140 如何在一台手机上登录两个? 选择排序算法与冒泡排序算法有何异同啊?364 请编程实现一个冒泡排序算法?106 为什么说快速排序是对冒泡排序的改进12 如何在一部手机上同时登录两个 如何在一台手机上登录两个? 最新公务员,机关事业单位人员工资调整工资增加了吗 机关单位干部和事业单位干部涨工资有区别吗 大房子隔成许多小间出租违法吗6 一间房子隔成两个房间出租算违法吗4 带有 “从”字 的四个字成语有哪些?1 与磐相关的成语,带磐字的成语,磐字成语大全,磐 如何选阀门,中国哪些地方主要生产阀门各有什么优缺点吗?5 购买东西的发票与实际付款不相符的情况说明怎么写1 C语言中 可以直接整形数赋给字符型么9 C语言的数据类型分为几种?379 2011年黑龙江省企业退休人员涨工资吗 实验室也可用KMnO4固体和浓盐酸反应制氯气,反应方程式如下:?_百度... 如何在一部手机上同时登录两个 笔记本听qq音乐经常死机甚至蓝屏怎么办 室内效果图把地板ps成地砖哪位大神会帮帮我 在线等1 听音乐的问题 磐字开头的成语2 用微信开qq会员开错了能不能取消订单 滴滴快车司机接单后来不了怎样取消订单29 快的打车预约一小时之后,现在有事耽误怎么取消订单1 形容很有能力的成语9 形容“能力”的词语有哪些? 桂林山水中的问题 支付宝里的 快的打车,如何取消订单8 支付宝快的打车已下单的如何取消7 滴滴打车师傅接单了,能取消订单吗?114 快的打车1号专车如果中途被司机接单候却不用 会不会有什么后果 为什么礼仪课过一段时间就要称体重呀 液化气罐安全阀执行标准号哪个好液化气罐安全阀哪个执行标准号好? 形容一个人能力强的词语有哪些4 形容“一个人有能力”的成语有哪些? 形容“能力有限”的成语有哪些?1