coutC++入门:排序(一)
北京联盟_本文原题:C++入门:排序(一)
人生是一场旅行 , 途中会遇到各种不同的人不同的事 , 在心理课上 , 我们常做一个游戏“人生的五样” 。 选出你人生中最重要的五样 , 可以是人可以是物可以是爱好习惯等 , 然后一样一样的删除 , 看看最后剩下的是什么?这就是一种排序 。
本文插图
选择排序
排序是计算机内经常进行的一种操作 , 其目的是将一组“无序”的记录序列调整为“有序”的记录序列 。 比如下面这个小学数学题目 , 首先理解数字需要从大往小排列 , 那么一般做法是选出最大数 , 填写到第一个括号内 , 然后 , 再从剩余未排序数字中继续寻找最大数 , 然后放到已排序数字的后面 , 以此类推 , 直到所有数字均排序完毕 。
本文插图
那么在程序设计时 , 这种排序方式叫选择排序(Selection-sort) , 是一种简单直观的排序算法 ,理论上讲 , 选择排序可能是平时排序一般人想到的最多的排序方法 , 因为无论什么数据进去都是O(n2)的时间复杂度 , 所以用到它的时候 , 数据规模越小越好 , 选择排序唯一的好处就是不占用额外的内存空间 。
本文插图
本文插图
桶排序
桶排序 (Bucket sort)是计数排序的升级版 。 计数排序其核心在于将输入的数据值转化为键存储在额外开辟的数组空间中 , 要求输入的数据必须是有确定范围的整数 。 下图为计数排序的演示 。
本文插图
桶排序的工作的原理 方法比较简单粗暴 , 假设输入数据服从均匀分布 ,先设置一个定量的数组当作空桶 , 然后遍历输入数据 , 并且把数据一个一个放到对应的桶里去 , 然后对每个不是空的桶进行排序 , 从不是空的桶里把排好序的数据拼接起来 。
直接看例子可能更好理解 。
推荐阅读
- 铃木|3款最具性价比入门摩托,不足万元,贝纳利铃木雅马哈都有
- 汽车|你肯定没算好,高配合资?还不如看看入门级豪华SUV
- 趣头条|凯迪拉克XT6增配两款入门车型 38.97万起售
- 汽车|宝马入门级之争!价格接近的情况下,X1和X2谁的档次更高?
- 奔驰A级|奔驰也摊牌了!入门轿车从21.18万降到14.56万,还要啥凯美瑞雅阁
- 驱动中国|入门级智能录音笔该选谁?讯飞智能录音笔A1和搜狗C1对比评测
- 奥迪|奥迪旗下首款跨界车型,高颜值高配置,入门仅售28.37万动感美学,源于"Sportback"强劲动力,尽享澎湃智能科技配置,同级少有综上:
- 老司机的小技巧|户外拉力入门首选,倒置前减配碟刹,座高775mm,电喷水冷1.38万
- 理念|全新福瑞迪来袭,新增智能互联系统,入门价更低,成功实现逆生长
- 宝马|实拍性价比超高的豪华入门级SUV,年轻时尚,舒适还有面
