1樓:匿名使用者
1、插入排序(直接插入排序和希爾排序)
2、選擇排序(直接選擇排序和堆排序)
3、交換排序(氣泡排序和快速排序)
4、歸併排序
5、基數排序
直接插入排序:逐個將後一個數加到前面的排好的序中。在直接插入排序過程中,對其中一個記錄的插入排序稱為一次排序;直接插入排序是從第二個記錄開始進行的,因此,長度為n的記錄序列需要進行n-1次排序才能完成整個序列的排序。
時間複雜度為o(n2)。
希爾排序:希爾排序又稱縮小增量排序,增量di可以有各種不同的取法,但最後一次排序時的增量必須為1,最簡單可取di+1=di/2(取小)。時間複雜度為o(n(log2n)2)。
直接選擇排序
說明:每次將後面的最小的找出來插入前面的已排好的序中。同理,具有n個記錄的序列要做n-1次排序。
時間複雜度為o(n2)。
氣泡排序:兩個兩個比較,將大的往後移。通過第一次氣泡排序,使得待排序的n個記錄中關鍵字最大的記錄排到了序列的最後一個位置上。
然後對序列中前n-1個記錄進行第二次氣泡排序。。。對於n個記錄的序列,共需進行n次氣泡排序。時間複雜度為o(n2)。
快速排序:又叫分割槽交換排序,是對氣泡排序方法的一種改進。時間複雜度為o(nlog2n)。
歸併排序:將兩個或兩個以上的有序資料序列合併成一個有序資料序列的過程。時間複雜度為o(nlog2n)。
資料結構中常見的排序方式都有哪些?比如氣泡排序,快速排序等。每種排序具體是怎麼排的?
2樓:匿名使用者
1.直接插入:就是有一個已經排好的子序列,它是有序的。
然後來一個插入一個仍是這個序列有序。比如a1本身就是有序的。a2來了,要和a1比較,a2大就插在a1之後,小就在a1之前,那麼a1、a2就是新的有序子序列,然後a3來了,又要插入進來,逐個與a2、a1比較插在它的適當位置再次形成子序列,就按這樣一步步進行,知道最後一個插入時,以前的都已經有序了。
2.希爾排序:由於有時候資料量大,用直接插入就不太合適。
於是把你的一組待排序資料按如8、4、2、1的一組增量數來分組,即第一次,a1和a9和a17甚至還有更多間隔為八的數分為一組進行直接插入排序,第二次則是新的a1和a5、a9、a13……依次知道最後比較資料之間的間隔數為1,每次都進行插入排序
3.直接選擇:n個數逐個比較,誰大的誰放最後(n的位置),比較範圍減一;然後又從n-1個數中找最大的,又放最後(n-1的位置),依次這樣進行就可以。
4.冒泡:比較的時候如果前者比後者大就要進行值的交換。那麼最大的每次都會沉到底下。比較範圍減一。
5、快速排序:要採用分劃控制。比較複雜。
資料結構中幾種常見的排序演算法之比較
3樓:
實話實說,關於資料結構中幾種常見的排序演算法(例如:氣泡排序、shell排序、歸併排序、快速排序等)的效能好壞,還不只是學好了資料結構這門課程就能夠解決的問題,還必須要學習好、且精通掌握計算機軟體專業的另外一門非常重要的課程,才能夠解決這個問題。即:
計算機演算法複雜性理論。
只有同時把這門課程學好了,那麼才能夠真正掌握資料結構中的各種排序演算法、以及各種查詢演算法中所有涉及到的:比較次數、以及交換次數,最終才能夠根據具體的開發軟體規模的不同,選擇出一個適合開發該軟體的最佳演算法。
資料結構中幾種常見內部排序方法的比較
4樓:百度文庫精選
內容來自使用者:cngdzjl
資料結構各種排序方法的綜合比較
結論: 排序方法 平均時間 最壞時間 輔助儲存 簡單排序 o(n2) o(n2) o(1) 快速排序 o(nlogn) o(n2) o(logn) 堆排序 o(nlogn) o(nlogn) o(1) 歸併排序 o(nlogn) o(nlogn) o(n) 基數排序 o(d(n+rd)) o(d(n+rd)) o(rd)ps:直接插入排序、氣泡排序為簡單排序,希爾排序、堆排序、快速排序為不穩定排序
一、時間效能
按平均的時間效能來分,有三類排序方法:時間複雜度為o(nlogn)的方法有:快速排序、堆排序和歸併排序,其中以快速排序為最好;
時間複雜度為o(n2)的有:直接插入排序、起泡排序和簡單選擇排序,其中以直接插入為
最好,特別是對那些對關鍵字近似有序的記錄序列尤為如此;
時間複雜度為o(n)的排序方法只有,基數排序。
當待排記錄序列按關鍵字順序有序時,直接插入排序和起泡排序能達到o(n)的時間複雜度;而對於快速排序而言,這是最不好的情況,此時的時間效能蛻化為o(n2),因此是應該儘量避免的情況。簡單選擇排序、堆排序和歸併排序的時間效能不隨記錄序列中關鍵字的分佈而改變。二、空間效能
指的是排序過程中所需的輔助空間大小。
1.所有的簡單排序方法(包括:直接插入、起泡和簡單選擇3....
5樓:張幾何
這些全是內排,有什麼問題你再問我
資料結構的排序方法有哪些?
6樓:百度文庫精選
內容來自使用者:cngdzjl
資料結構各種排序方法的綜合比較
結論: 排序方法 平均時間 最壞時間 輔助儲存 簡單排序 o(n2) o(n2) o(1) 快速排序 o(nlogn) o(n2) o(logn) 堆排序 o(nlogn) o(nlogn) o(1) 歸併排序 o(nlogn) o(nlogn) o(n) 基數排序 o(d(n+rd)) o(d(n+rd)) o(rd)ps:直接插入排序、氣泡排序為簡單排序,希爾排序、堆排序、快速排序為不穩定排序
一、時間效能
按平均的時間效能來分,有三類排序方法:時間複雜度為o(nlogn)的方法有:快速排序、堆排序和歸併排序,其中以快速排序為最好;
時間複雜度為o(n2)的有:直接插入排序、起泡排序和簡單選擇排序,其中以直接插入為
最好,特別是對那些對關鍵字近似有序的記錄序列尤為如此;
時間複雜度為o(n)的排序方法只有,基數排序。
當待排記錄序列按關鍵字順序有序時,直接插入排序和起泡排序能達到o(n)的時間複雜度;而對於快速排序而言,這是最不好的情況,此時的時間效能蛻化為o(n2),因此是應該儘量避免的情況。簡單選擇排序、堆排序和歸併排序的時間效能不隨記錄序列中關鍵字的分佈而改變。
二、空間效能
指的是排序過程中所需的輔助空間大小。
1.所有的簡單排序方法(包括:直接插入、起泡和簡單選擇3....
7樓:
題目似乎不是很完整。
先回答:(1)c,(2)a,(3)d,(4)b,(5)g
(1) c.插入排序 法從未排序的序列中依次取出元素,與已排序序列(初始時為空)中的元素作比較,將其放入已排序序列的正確位置上;
(2) a.選擇排序 法從未排序的序列中挑選元素, 並將其依次放入已排序序列(初始時為空)的一端;交換排序方法是對序列中的元素進行一系列比較, 當被比較的兩元素逆序時,進行交換;
(3) d.起泡排序 和 (4)b.快速排序 是基於這類方法的兩種排序方法;
(5) g.堆排序 法是基於選擇排序的一種排序方法,是完全二叉樹結構的一個重要應用。
原題應該是:
排序方法有許多種,(1)法從未排序的序列中依次取出元素,與已排序序列(初始時為空)中的元素作比較,將其放入已排序序列的正確位置上;(2)法從未排序的序列中挑選元素,並將其依次放入已排序序列(初始時為空)的一端; 交換排序方法是對序列中的元素進行一系列比較,當被比較的兩元素逆序時,進行交換;(3)和(4)是基於這類方法的兩種排序方法, 而(4)是比(3)效率更高的方法;(5)法是基於選擇排序的一種排序方法,是完全二叉樹結構的一個重要應用。 【北方交通大學 1999
一、3 (5分)】
(1)--(5): a.選擇排序 b.快速排序 c.插入排序 d.起泡排序
e.歸併排序 f.shell排序 g.堆排序 h.基數排序
【解答】(1)c,(2)a,(3)d,(4)b,(5)g
8樓:果典熊經賦
1、插入排序(直接插入排序和希爾排序)
2、選擇排序(直接選擇排序和堆排序)
3、交換排序(氣泡排序和快速排序)
4、歸併排序
5、基數排序
直接插入排序:逐個將後一個數加到前面的排好的序中。在直接插入排序過程中,對其中一個記錄的插入排序稱為一次排序;直接插入排序是從第二個記錄開始進行的,因此,長度為n的記錄序列需要進行n-1次排序才能完成整個序列的排序。
時間複雜度為o(n2)。
希爾排序:希爾排序又稱縮小增量排序,增量di可以有各種不同的取法,但最後一次排序時的增量必須為1,最簡單可取di+1=di/2(取小)。時間複雜度為o(n(log2n)2)。
直接選擇排序
說明:每次將後面的最小的找出來插入前面的已排好的序中。同理,具有n個記錄的序列要做n-1次排序。
時間複雜度為o(n2)。
氣泡排序:兩個兩個比較,將大的往後移。通過第一次氣泡排序,使得待排序的n個記錄中關鍵字最大的記錄排到了序列的最後一個位置上。
然後對序列中前n-1個記錄進行第二次氣泡排序。。。對於n個記錄的序列,共需進行n次氣泡排序。時間複雜度為o(n2)。
快速排序:又叫分割槽交換排序,是對氣泡排序方法的一種改進。時間複雜度為o(nlog2n)。
歸併排序:將兩個或兩個以上的有序資料序列合併成一個有序資料序列的過程。時間複雜度為o(nlog2n)。
9樓:春曉sweet甜
穩定的氣泡排序(bubble sort) — o(n2)
雞尾酒排序 (cocktail sort, 雙向的氣泡排序) — o(n2)
插入排序 (insertion sort)— o(n2)
桶排序 (bucket sort)— o(n); 需要 o(k) 額外 記憶體
計數排序 (counting sort) — o(n+k); 需要 o(n+k) 額外 記憶體
歸併排序 (merge sort)— o(n log n); 需要 o(n) 額外記憶體
原地歸併排序 — o(n2)
二叉樹排序 (binary tree sort) — o(n log n); 需要 o(n) 額外記憶體
鴿巢排序 (pigeonhole sort) — o(n+k); 需要 o(k) 額外記憶體
基數排序 (radix sort)— o(n·k);
不穩定選擇排序 (selection sort)— o(n2)
希爾排序 (shell sort)— o(n log n)
堆排序 (heapsort)— o(n log n) smoothsort — o(n log n)
快速排序 (quicksort)— o(n log n)
學資料結構有什麼用,資料結構學了有什麼用?
在許多型別的程式的設計中,資料結構的選擇是一個基本的設計考慮因素。許多大型系統的構造經驗表明,系統實現的困難程度和系統構造的質量都嚴重的依賴於是否選擇了最優的資料結構。許多時候,確定了資料結構後,演算法就容易得到了。有些時候事情也會反過來,我們根據特定演算法來選擇資料結構與之適應。不論哪種情況,選擇...
關於資料結構的定義有問題
結構,顧名思義,是由兩個以上的東西組織在一起時,才涉及到組織 結構 這種概念.比如自然界中,就目前的理論,物質是無限可分的,所以世間萬物都有各自的 結構 計算機理論中的話,資料的最小單元是位,所以,從廣義上說,整型,浮點型都有自己的結構,即各個位是按什麼原則組織在一起,可以稱為整型或浮點型.但一般我...
C自定義資料結構的排序問題,怎麼用c 定義一個學生資料結構,並用該結構定義五個結構變數和賦值
宣告struct data 建立測試資料 data st new data 4 new data new data new data 按照 data.b 順序排列 data basc st.orderby p p.b toarray 按照 data.b 倒序排列 data bdesc st.orde...