美文网首页
手写一个简单的排序

手写一个简单的排序

作者: 小陈陈酱 | 来源:发表于2019-10-28 10:53 被阅读0次

今天偶然间看到一个大佬写的排序,所以就自己动手写看看。

直入主题:


function sortArr(arr =[]) {
if (arr.length < 2) return arr;
const point = arr[arr.length-1]
const left = arr.filter((v,i) => v <=point && i !== arr.length -1)
const right = arr.filter(v => v >point )
return [...sortArr(left), point, ...sortArr(right)]
}
sortArr([1, 10, 100, 9, 28, 99, 7, 77, 88, 10, 100, 9])
// (12) [1, 7, 9, 9, 10, 10, 28, 77, 88, 99, 100, 100]

思路就是:

找到最后一个数,然后依次和他进行对比。比他小的放在左边,比他大的放在右边,然后再把左边 + 中间 + 右边 = 排序后的arr
图解的话,是这样的(盗图一张)

WX20190911-205803@2x.png

参考(或者说是学习源)链接是:

https://juejin.im/post/5d75b4d45188250c992d5919

记录一下。

attention

后面我自己调用了一下这个方法,不可行,有性能问题。如果数组length太大,这个方法花费的时间太长,效率不高。因为filter其实也很耗时的。如果是数字的话,可能sort方法都比我上面写那个好使。哈哈哈哈。

一个对算法和链表不清不楚的小白,自娱自乐,自己推翻自己。好玩。

相关文章

  • 算法

    排序算法有哪些?最快的排序算法是哪个?手写一个冒泡排序手写快速排序代码快速排序的过程、时间复杂度、空间复杂度手写堆...

  • 手写一个简单的排序

    今天偶然间看到一个大佬写的排序,所以就自己动手写看看。 直入主题: 思路就是: 找到最后一个数,然后依次和他进行对...

  • 算法

    排序算法有哪些? 最快的排序算法是哪个? 手写一个冒泡排序 手写快速排序代码 快速排序的过程、时间复杂度、空间复杂...

  • java-四种排序算法

    复习java基础的时候,顺手写的。代码比较丑……1、直接插入排序 2、希尔排序 3、简单选择排序 4、堆排序

  • 搞定冒泡排序

    排序是校招(或初级社招)最常见的考点之一,普通IT公司主要考察简单排序,经常让你手写一个排序算法。既能考察代码实现...

  • 滴滴面试题

    1、快速排序和二分排序选一个手写。 2、手写一个 eventEmitter。 3、手写两个数组的交集。 两层 fo...

  • 八大排序之直接插入排序

    我们一般最开始接触的排序就是插入排序,它看上去非常简单,可是如果没有弄清楚他的细节,自己手写一个插入排序,也是会出...

  • 选择排序就这么简单

    选择排序就这么简单 从上一篇已经讲解了冒泡排序了,本章主要讲解的是选择排序,希望大家看完能够理解并手写出选择排序的...

  • 手写算法

    1.手写快排 手写快速排序手写快速排序 2.手写二分查找 3.手写单链表反转 4.栈实现队列 5.寻找全排列的下一个数

  • 面试常见算法题你会多少?

    罗列一下常见算法题 看看你会多少?后续会更新上解析 排序算法有哪些?最快的排序算法是哪个?手写一个冒泡排序手写快速...

网友评论

      本文标题:手写一个简单的排序

      本文链接:https://www.haomeiwen.com/subject/gidwyctx.html