随笔分类 -  算法&数据结构

学习算法&数据结构并实现
摘要:本文同时发布在 "我的个人博客" 之前尝试了 "用mysql做大规模数据的检索优化" ,可以看到单字段检索的情况下,是可以通过各种手段做到各种类型索引快速检索的,那是一种相对简单的场景。 但是实际应用往往会复杂一些 —— 各类索引(关键词匹配、全文检索、时间范围)混合使用,还有排序的需求。这种情况下 阅读全文
posted @ 2019-04-16 16:39 桃子夭夭 阅读(11129) 评论(1) 推荐(4) 编辑
摘要:思路二分插入排序是插入排序的改进版,思路如下:① 取数组的第一个元素认为已经排好序了② 依次遍历数组中的元素,每次遍历过程中用二分查找找到已排序数组中,最后一个大于当前被遍历元素的位置③ 将当前元素插入②找到的位置④ 遍历完成后排序完成前置技能二分查找在一个有序数组arr中寻找一个数的位置。① 定义... 阅读全文
posted @ 2015-10-12 16:17 桃子夭夭 阅读(933) 评论(2) 推荐(0) 编辑
摘要:思路我学习的归并是简单的二路归并,思路如下:① 将数组平均分成两份② 递归重复①,直到每个数组中只有1个元素,只有一个元素的数组可以认为是排好序的③ 将两个排好序的数组合并成一个排好序的数组④ 重复③直到最终得到一个排好序的数组javascript实现/** * 归并排序 * @param arr ... 阅读全文
posted @ 2015-10-12 13:44 桃子夭夭 阅读(392) 评论(0) 推荐(0) 编辑
摘要:思路 ① 遍历数组arr,对所有相邻的数字进行比较,若后边的数字大于前边的,则交换位置 ② 经过第一步后,最大的数字已经冒泡在数组末尾了,就不用遍历了。对arr 索引区间在0~arr.length-1的部分重复步骤① ③ 不断重复步骤②直到区间范围为0~1,此时数组中所有数字都已经排序完毕 另... 阅读全文
posted @ 2015-10-11 14:38 桃子夭夭 阅读(190) 评论(0) 推荐(0) 编辑
摘要:排序思路从头开始遍历数组arr将位置i处的数字与位置在0~i-1区间的数字比较(可以认为0~i-1区间内的数字是已经排好序的)若0~i-1区间中的数字n>=arr[i],则将arr[i]插入n之前javascript实现function insertionSort(arr){ if(!(arr... 阅读全文
posted @ 2015-10-10 18:19 桃子夭夭 阅读(229) 评论(0) 推荐(0) 编辑
摘要:排序思路① 若数组长度为0/1,直接返回结果,否则从数组中间取一个数字作为基准值② 将数组从左到右分成三份 第一份中的数字小于基准值,第二份是基准值,第三份中数字大于基准值③ 对第一份和第三份中的数字递归重复步骤①②,返回三份数组拼接起来的结果以对数组[8,6,5,9,4,3]排序为例,画了个简图:... 阅读全文
posted @ 2015-10-10 15:10 桃子夭夭 阅读(230) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示