![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构学习
西门吃雪……
这个作者很懒,什么都没留下…
展开
-
js实现二分搜索的思路
1.0 从数组的中间元素开始,如果中间元素正好是目标值,则搜索结束. 2.0如果目标值大于或者小于中间元素,则在大于或小于 中间元素那一半数组中搜索 Array.prototype.binarySearch = function(item) { //二分搜索的前提是二分搜索是有序的 //如果二分搜索是乱序的话 我们要先进行排序 // this.sort(); // 但是我们今天假设数组是有序的 //最小下标 let low = 0; //最大下原创 2021-06-03 22:24:42 · 91 阅读 · 0 评论 -
js实现顺序搜索的思路
顺序搜索的思路 1.0遍历数组 2.0找到跟目标值相等的元素,就返回它的下标. 遍历结束后,如果没有搜索到目标值,就返回 -1.原创 2021-06-03 21:40:33 · 145 阅读 · 0 评论 -
js实现快速排序的思路
分区:从数组中选择任意一个元素作为基准,所有比基准小的元素放在基准前面,比基准大的元素放在基准的后面 第二步递归:递归对基准前后的子数组进行分区 如果比16小的话我们标准成绿色,如果比16大的话我们标志成紫色. 如果遇到比基准小的元素而且比他目前选择的元素小的话我们把这个元素移到靠前的位置 挨着前面元素往前排 如动画 第一轮 排序完成 我们找到所以比基准小的元素和比基准大的元素了. 此时我们可以保证16已经在他合适的位置上了 Array.prototype.quickSort =原创 2021-06-03 20:49:56 · 215 阅读 · 0 评论 -
js归并排序
归并排序的思路 第一步分:把数组劈成两半 ,再递归地对子数组进行分操作, 直到分成一个个单独的数. 第二步合:把两个数合并为有序数组,再对有序数组进行合并, 直到全部子数组合并为一个完整数组. 合并两个有序数组 新建一个空数组res,用于存放最终排序后的数组. 比较两个有序数组的头部,较小者出队并推入res中. 如果两个数组还有值,就重复第二步. 然后选中49与48 将较小者推入res中 由于数组还没有空继续比较 49是较小者把他推入 此时完成了有序数组的合并 进行比较合并原创 2021-06-02 17:43:15 · 190 阅读 · 0 评论 -
js实现插入排序
插入排序:思路 1.0 从第二个数开始往前比 2.0 比它大就往后排 3.0 以此类推进行到最后一个数 如果第一数比较大就往后排 以此类推 Array.prototype.insertionSort = function() { //第一步拿出第二个数往前比 const temp = this[1]; //第二步拿到前面所有的下标 let j = 1; while (j > 0) { j -= 1; } }; co原创 2021-06-01 20:22:17 · 1402 阅读 · 0 评论 -
js实现选择排序的思路
选择排序的思路 1.0找到数组的最小值,选中它并且将其放置在第一位 2.0接着找到第二小的值,选中它并将它放置在第二位. 以此类推,执行n-1轮. 假设当前最小值是第一个数 就是45 这样一轮下来我们就可以找到最小值 然后以此类推 把最小的元素抛开 思考刚才动画的第一轮做了什么? 无非就是经过了一轮循环找到了最小值 并且把最小值放置到了 第一位 也就是和第一数字进行了交换 Array.prototype.selectionSort = function (){ //首先声明一个最小值的原创 2021-05-31 22:14:34 · 139 阅读 · 0 评论 -
js实现冒泡排序
冒泡排序的思路: 比较所有相邻元素,如果第一个比第二个大,则交换它们. 第一轮下来,可以保证最后一个数是最大的. 执行n-1轮,就可以完成排序 看图演示 首先会选择第一个和第二个元素 如果第一个元素大于第二个元素则交换他们的位置 如果第二个元素大于第三个元素则交换他们的位置 以此类推 最大的元素会像气泡一样冒到最后一位 然后不停的执行 最后会得到以小到大的排列 原型链的特性:如果数组上没有这个方法但是原型链上有这个方法 一样可以调用 然后我们考虑拿到所有相邻的元素 考虑: 为原创 2021-05-30 19:17:29 · 140 阅读 · 0 评论 -
php数据结构笔记待续
线性表的特点:0或多个数据元素的有序列表,除首尾外。原创 2021-03-07 19:35:06 · 45 阅读 · 0 评论 -
空间复杂度
原创 2021-03-07 16:16:05 · 71 阅读 · 0 评论 -
数据结构之时间复杂度笔记
注意定性两个字 为什么是o1 因为该代码只执行一次 没有循环什么的东西 这样的时间复杂度为o(n) 如果两个时间复杂度相加 取那个时间复杂度更快的 时间复杂度相乘原创 2021-03-04 18:01:22 · 220 阅读 · 1 评论