摘要:
排序算法的常用种类 初级排序 选择排序 插入排序 希尔排序 进阶排序 快速排序 归并排序 (二叉堆排序)堆排序 非比较排序 计数排序 基数排序 桶排序 逆序对 逆序对,是分析排序算法的一个重要知识点。既然评估排序算法,就要知道如何去描述数组的排序程序。 逆序对,数组中两个逆序元素的对数。 比如【1, 阅读全文
摘要:
思想 桶排序,也是为了解决计数排序计数数组大小设置的问题。桶排序,就是把待排序数据分为不同的区间,然后区间内进行排序,最后即可完成排序。 就有点像,成绩会有一个区间,比如100 90, 90 80这样,每个区间就是一个桶,然后对桶内元素进行排序。最后取出来,即完成排序。 从上面分析可以看出,我们对区 阅读全文
摘要:
思想 基数排序,是按照元素的更小元素组成来进行排序。拿常用的数字排序举例,会先对个位进行排序,然后对十位进行排序。 其中,关键是如何对个位进行排序,如何对十位进行排序。 我们知道对于数字的每一位,只有10个数字(0 9),这就是基数。所以故名,基数排序。基数排序所以可以理解为适用于基数是有限的情况下 阅读全文
摘要:
思想 计数排序,不再依赖元素的比较,而是通过计数的方式,来进行排序。 比如,你知道成绩比你高的有5个人,那么你是多少名呢?计数排序就是采用这种思想。 计数排序,为每一个元素设置一个计数,然后进行计数排序。 从这个思想上来看,计数排序会使用到复制的空间,而且辅助空间的数量为 待排序数组的最大值 最小值 阅读全文
摘要:
思想 快速排序,是选取一个元素,然后经过交换元素,保证选定元素的左边都小于它,右边元素都大于它。每次操作后,选定元素的位置就是排序后的位置。 就像多个人进行高矮个排列一样,你看了下,前面的人都比你矮,后面的人都比你高,那么你就可以不动了,随他们怎么折腾,反正你站的位置对了,他们排序好了,你也还是站在 阅读全文