冒泡,選擇,插入,希爾,歸併,快速排序大合集,以及最優實現

冒泡排序

冒泡排序(英語:Bubble Sort)是一種簡單的排序算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序(如從大到小、首字母從A到Z)錯誤就把他們交換過來。

過程演示:

冒泡,選擇,插入,希爾,歸併,快速排序大合集,以及最優實現


冒泡,選擇,插入,希爾,歸併,快速排序大合集,以及最優實現

選擇排序

選擇排序(Selection sort)是一種簡單直觀的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

過程演示:

冒泡,選擇,插入,希爾,歸併,快速排序大合集,以及最優實現

冒泡,選擇,插入,希爾,歸併,快速排序大合集,以及最優實現


冒泡,選擇,插入,希爾,歸併,快速排序大合集,以及最優實現

插入排序

插入排序(英語:Insertion Sort)是一種簡單直觀的排序算法。它的工作原理是通過構建有序序列,對於未排序數據,在已排序序列中從後向前掃描,找到相應位置並插入。插入排序在實現上,通常採用in-place排序(即只需用到 {\\displaystyle O(1)} {\\displaystyle O(1)}的額外空間的排序),因而在從後向前掃描過程中,需要反覆把已排序元素逐步向後

挪位,為最新元素提供插入空間。

過程演示:

冒泡,選擇,插入,希爾,歸併,快速排序大合集,以及最優實現


冒泡,選擇,插入,希爾,歸併,快速排序大合集,以及最優實現

希爾排序

希爾排序,也稱遞減增量排序算法,是插入排序的一種更高效的改進版本。希爾排序是非穩定排序算法。

希爾排序是基於插入排序的以下兩點性質而提出改進方法的:

  • 插入排序在對幾乎已經排好序的數據操作時,效率高,即可以達到線性排序的效率
  • 但插入排序一般來說是低效的,因為插入排序每次只能將數據移動一位

過程演示:

冒泡,選擇,插入,希爾,歸併,快速排序大合集,以及最優實現


冒泡,選擇,插入,希爾,歸併,快速排序大合集,以及最優實現

歸併排序

把數據分為兩段,從兩段中逐個選最小的元素移入新數據段的末尾。

可從上到下或從下到上進行。

過程演示:

冒泡,選擇,插入,希爾,歸併,快速排序大合集,以及最優實現

冒泡,選擇,插入,希爾,歸併,快速排序大合集,以及最優實現

(1)迭代法


冒泡,選擇,插入,希爾,歸併,快速排序大合集,以及最優實現

(2)遞歸法


冒泡,選擇,插入,希爾,歸併,快速排序大合集,以及最優實現

快速排序

在區間中隨機挑選一個元素作基準,將小於基準的元素放在基準之前,大於基準的元素放在基準之後,再分別對小數區與大數區進行排序。

過程演示:

冒泡,選擇,插入,希爾,歸併,快速排序大合集,以及最優實現

(1)迭代法

冒泡,選擇,插入,希爾,歸併,快速排序大合集,以及最優實現


冒泡,選擇,插入,希爾,歸併,快速排序大合集,以及最優實現

(2)遞歸法


冒泡,選擇,插入,希爾,歸併,快速排序大合集,以及最優實現


專注於技術熱點大數據,人工智能,JAVA、Python、 C 、GO、Javascript等語言最新前言技術,及業務痛點問題分析,請關注【編程我最懂】共同交流學習。


分享到:


相關文章: