2018-12-10-17:22:29 1.排序 定義 : 排序是計算機內經常進行的一種操作,其目的是將一組“無序”的記錄序列調整為“有序”的記錄序列。分內部排序和外部排序,若整個排序過程不需要訪問外存便能完成,則稱此類排序問題為內部排序。反之,若參加排序的記錄數量很大,整個序列的排序過程 ...
本文是本人讀過 算法導論 之后所寫,C代碼實現是我盡量參照偽代碼所寫,如有錯誤,敬請指正。 :所有排序算法默認從小到大排序,偽代碼數組的首元素為A , 數組長度為n 一 冒泡排序 冒泡排序應該是最簡單的比較排序了,排序原理就是重復遍歷數組,每次比較相鄰的兩個元素,如果前一個元素大於后一個元素,則交換數組兩個元素的位置。這樣每遍歷一次,最大的元素就會下沉到數組最底部,重復遍歷n 次,所有元素就都已排 ...
2014-11-28 13:04 4 2091 推薦指數:
2018-12-10-17:22:29 1.排序 定義 : 排序是計算機內經常進行的一種操作,其目的是將一組“無序”的記錄序列調整為“有序”的記錄序列。分內部排序和外部排序,若整個排序過程不需要訪問外存便能完成,則稱此類排序問題為內部排序。反之,若參加排序的記錄數量很大,整個序列的排序過程 ...
最近整理了常用的排序算法,整理好,留下自己的思考過程。 1、冒泡排序: (1)平均時間復雜度:O(n2) (2)最好時間復雜度:O(n) (3)最壞時間復雜度:O(n2) (5)空間復雜度:O(1) (5)穩定性:穩定 (6)JavaScript實現: 2、選擇排序 ...
之前一篇文章常用的比較算法排序總結介紹了幾種常用的比較排序算法,下面介紹的是幾種非比較排序算法,分別是:計數排序、基數排序以及桶排序。 非比較排序算法內部引用的都是計數排序,當然你也可以將計數排序換為其他的比較排序算法。 計數排序 計數排序的步驟為: 遍歷數組(A),借助一個輔助數組 ...
基本排序算法 這里主要介紹的基本排序算法主要包括: 冒泡排序,選擇排序,插入排序,之后的文章會介紹希爾排序,快速排序等高級排序算法, 文章后面會對這幾個算法進行性能比較.基本排序算法的核心思想是對一組數據按照一定的順序重新排列. 重新排列主要就是嵌套的for循環. 外循環會遍歷數組每一項 ...
一、基本排序算法 1. 冒泡排序 假如我們現在按身高升序排隊,一種排隊的方法是:從第一名開始,讓兩人相互比身高,若前者高則交換位置,更高的那個在與剩下的人比,這樣一趟下來之后最高的人就站到了隊尾。接着重復以上過程,直到最矮的人站在了隊列首部。我們把隊頭看作水底,隊尾看作水面,那么第一 ...
1.穩定性比較 插入排序、冒泡排序、二叉樹排序、二路歸並排序及其他線形排序是穩定的 選擇排序、希爾排序、快速排序、堆排序是不穩定的 2.時間復雜性比較 平均情況 最好情況 最壞情況 ...
本人介紹的排序算法主要有:插入排序,選擇排序,冒泡排序,快速排序,堆排序,歸並排序,希爾排序,二叉樹排序,桶排序,基數排序(后兩者為非比較排序,前面的為比較排序)。 排序的穩定性和復雜度: 不穩定: 選擇排序(selection sort)— O(n2 ...