快速應對面試 3 排序

2021-10-08 00:00:48 字數 730 閱讀 1495

排序演算法碎碎念:

超級好用的口訣:

時間複雜度:快些以nlogn的速度歸隊。

穩定性:心情不穩定,快些選一堆好友來聊天吧。

直接插容易插變o(n),起泡起得好變o(n).(初始序列已經有序)

插入排序法在近乎有序的情況下,效率特別高,通過插入排序,可以引申出希爾排序

歸併排序:左半部分排好序,右半部分排好序,然後,把他們合併成乙個有序的陣列

在有序陣列中查詢乙個數:遍歷o(n),二分o(logn).

merge sort和quick sort:

都使用了分治演算法

歸併排序:切+merge。每次平均的將整個陣列一分為二

快速排序:如何分+標定點。分出來的子陣列可能一大一小

分治演算法:

顧名思義,分而治之,就是將原問題,分割成同等結構的子問題,之後將子問題逐一解決後,原問題也就得到了解決。

整個陣列近乎有序,這對於快速排序實在是太糟糕了。

堆排序堆總是一棵完全二叉樹,用陣列儲存就是因為他是一棵完全二叉樹。

將n個元素逐個插入到乙個空堆中,演算法複雜度是o(nlogn)

heapify的過程,演算法複雜度是o(n)

不使用額外空間,原地排序

總體而言,快速排序是更加快的乙個排序演算法

歸併排序必須開闢額外空間,才能完成歸併的過程,才能完成歸併排序。

對於快速排序來說,我們採用遞迴的方式來進行排序,這個遞迴。o(l

js基礎學,應對面試3

型別檢測最基本的就是要知道所有型別,我再來一遍 基本型別 number null undefined string object boolean symbol 內建物件 number string object array function error regexp date boolean檢測基本...

30 排序 快速排序

排序也是我們經常用到的一種演算法,之前我們遇到的有氣泡排序,選擇排序等。那麼我們就開始主要梳理一下排序演算法,並且重點理解出現頻率比較高的快速排序的方法。推薦看這個人的部落格,非常的詳細了。快速排序 適用場景 資料量大,快速排序是目前基於比較的排序中被認為是最好的方法,當待排序的關鍵字是隨機分布時,...

05 排序 快速排序

原理 整個過程其實只需三步 1.在一列陣列中,選擇其中乙個資料作為 基準 2.所有小於 基準 的資料,都移到 基準 的左邊,所有大於 基準 的資料,都移到 基準 的右邊。3.對於 基準 左邊和右邊的兩個子集,不斷重複第一步和第二步。直到所有的資料子集只剩下乙個資料為止。用例 現有一組資料如下 8 2...