近来有小伙伴问我:刷leetcode真的有用吗,觉得收益很小,越刷越迷茫了... 诚然每个人刷题的目的不一样,233酱还不是为了能水几篇文章... 当然不止。我觉得刷题是一件有意思的事,就像小猫小狗咬自己尾巴,玩弄的不亦乐乎。比喻可能不太恰当,是有种沉迷小游戏的感觉。可是在艰难打野的过程中,我们不要 ...
分类:
编程语言 时间:
2020-07-22 01:58:01
阅读次数:
64
三种时间复杂度为O(n)的排序算法:桶排序、计数排序、基数排序 这三种排序算法都不涉及元素之间的比较操作,也叫做线性排序(Linear sort) 桶排序 核心思想 将要排序的数据分散到有序的桶中,分别对桶中的数据进行排序。排序好了之后,按照桶的顺序依次取出,就得到排好序的数据了。 时间复杂度 时间 ...
分类:
编程语言 时间:
2020-07-21 23:13:45
阅读次数:
92
内部排序:数据记录在内存中进行排序外部排序:待排序文件较大,需要访问外存常见的内部排序:插入排序(直接插入、折半插入、希尔排序)、交换排序(冒泡、快排)、选择排序(简单选择、堆排序)、归并排序(2路归并)、基数排序外排:归并排序(多路归并)、各种内排的性能比较:插入排序每次将一个待排序的记录按关键字大小插入到前面已排好序的子序列中,直到全部记录插入完成每一轮能够确定一个最终位置的记录,某时刻的状态
分类:
编程语言 时间:
2020-07-19 16:23:30
阅读次数:
50
一、排序的概念:将一系列数据按照某个关键字进行递增或递减的顺序排列起来 二、排序的方式: 1、插入排序: 直接插入排序: 一 一比对 折半插入排序:在已经拍好的序列中插入,适合初始记录无序、n较大的情况 希尔排序:待排序的关键字基本有序->效率较高 分组插入,先分割(相隔某个增量的记录),对每组进行 ...
分类:
其他好文 时间:
2020-07-12 22:30:17
阅读次数:
65
本章学习了排序这一操作,排序方法分为两大类: 内部排序:不需要访问外存,分为插入类、交换类、选择类、归并类(2-路归并排序)和分配类(基数排序)。 外部排序:不可能在内存中完成。 (一)插入排序 1、直接插入排序 稳定排序,更适合于初始记录基本有序(正序)的情况 1 void InsertSort( ...
分类:
其他好文 时间:
2020-07-12 18:58:36
阅读次数:
54
基数排序(Java) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 基数排序(桶排序)介绍 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或b ...
分类:
编程语言 时间:
2020-06-27 15:53:56
阅读次数:
54
内部排序 -插入排序 -直接插入排序 -折半插入排序 -希尔排序 -交换排序 -冒泡排序 -快速排序 -选择排序 -简单选择排序 -堆排序 -归并排序 -基数排序 外部排序 -多路归并排序 1.直接插入排序 算法思路:每次将一个待排序的记录按其关键字大小插入到前面已排好序的子序列中,指导全部记录插入 ...
分类:
编程语言 时间:
2020-06-24 16:30:37
阅读次数:
52
一、桶排序 概念 桶排序,核心思想是将要排序的数据分到几个有序的桶里,每个桶里的数据再单独进行排序。桶内排序之后,再把每个桶里的数据按照顺序依次取出,组成的序列就是有序的。 应用场景 桶排序比较适合用在外部排序中。所谓的外部排序就是数据存储在外部磁盘中,数据量比较大,内存有限,无法将数据全部加载到内 ...
分类:
编程语言 时间:
2020-06-21 23:00:56
阅读次数:
52
<?php #基数排序,此处仅对正整数进行排序,至于负数和浮点数,需要用到补码,各位有兴趣自行研究 #计数排序 #@param $arr 待排序数组 #@param $digit_num 根据第几位数进行排序 function counting_sort(&$arr, $digit_num = fa ...
分类:
编程语言 时间:
2020-06-16 23:31:04
阅读次数:
80
这三种排序算法分别是桶排序、计数排序和基数排序,之所以它们的时间复杂度能到达O(n),是因为它们都是非基于比较的排序算法,不涉及元素之间的比较操作。 1 桶排序 1.1 原理 将待排数据元素分配到几个有序的桶中,然后对每个桶中的数据元素分别进行排序,每个桶中的数据元素有序后按桶的顺序将数据元素依次取 ...
分类:
编程语言 时间:
2020-06-16 20:03:08
阅读次数:
101