排序算法
常见的6大排序算法
So_gorgeous
一个本科在读学生
展开
-
排序(五):计数排序
介绍:计数排序是时间复杂度为O(n)的排序算,其最大的特点是不基于比较进行排序(思想是基于桶排序),空间复杂度为O(m),m为桶的数量;计数排序为稳定的排序;要注意的是计数排序并不适用于所有情况,但是用于一些范围小的整数排序有非常出色的效果。栗子引出:例如排序一个队伍里大家的身高,A为180,B为155,C为178,D为165思路: 建立一个155-180的桶,把ABCD依次放入相同下标的...原创 2019-03-31 14:43:01 · 225 阅读 · 0 评论 -
排序(四):快速排序法
图解分别从初始序列“6 1 2 7 9 3 4 5 10 8”两端开始“探测”。先从右往左找一个小于6的数,再从左往右找一个大于6的数,然后交换他们。这里可以用两个变量i和j,分别指向序列最左边和最右边。我们为这两个变量起个好听的名字“哨兵i”和“哨兵j”。刚开始的时候让哨兵i指向序列的最左边(即i=1),指向数字6。让哨兵j指向序列的最右边(即j=10),指向数字8。首先哨兵...转载 2019-03-12 22:04:22 · 287 阅读 · 0 评论 -
排序(三):插入排序法
当下热点:我写下这篇博文的热点话题是蓝洞起诉网易侵权,快手和抖音被勒令整改,星巴克咖啡严重致癌被辟谣,饿了么被阿里收购,美团收购摩拜。基本思想:把数组分为两个部分,每次将后部分的第一个数插入前面部分进行排序,然后循环实现总体排序。流程图如图: 每次把第二部分的开头一个数插入第一部分,被插入的数在第一部分进行排序放入相应位置。java代码实现:import java.uti...原创 2018-04-08 19:19:38 · 448 阅读 · 0 评论 -
排序(二):选择排序法
前言:有时候,我会觉得,凡事只要有个目标,便可以朝着它努力,这样必定会有结果;可是,慢慢的我发现,在生活中,太多的我们追求的事情,是没有目标的,这也正是我现阶段困惑的东西,我只能一步步的去试探,试图发现个规律。 虽然没有明确的目标,但是我还是要继续加油,对吧?基本思想:在排序的一组数中,选出最小的数与第一个数互换,如果本身就是则保持原位,接着再重剩下的数中选出最小的数与第二个数互换,直到...原创 2018-04-07 21:59:08 · 1976 阅读 · 0 评论 -
排序(一):冒泡排序法
前言: 有些路,只能一个人走,路上的艰辛,只有自己知道基本思想:比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。Java实现:import java.uti...原创 2018-03-31 11:29:59 · 160 阅读 · 0 评论