資料結構中的排序問題,急,資料結構 排序問題

時間 2023-01-06 14:10:09

1樓:網友

排序方法小結:

方法比較。綜合比較各種內部排序方法,其效能如下入所示:

方法 平均時間 最壞情況 輔助空間 穩定性 特點。

插入排序 o(n2) o(n2) o(1) √n<30常用。

希爾排序 o( o( o(1) ×不常用。

起泡排序 o(n2) o(n2) o(1) √初學。

快速排序 o(nlnn) o(n2) o(n) ×常用,易惡化。

選擇排序 o(n2) o(n2) o(1) √初學。

歸併排序 o(nlog2n)o(nlog2n) o(n) √佔空間多,用於外部排序。

可以看出,因為各種排序方法個有優缺點,因此不同情況下可以選擇不同方法,通常要考慮的因素右:待排。

序記錄的個數n,記錄本身的大小,關鍵字的分佈情況,對排序穩定性的要求和語言工具的條件等。

2樓:樂正涵柳

氣泡排序適合基本已經排好序的情況下,這樣效率會很高。

快速排序適合順序很混亂的情況。

3樓:匿名使用者

快排一般效率比冒泡高。

資料結構 排序問題 20

4樓:匿名使用者

兩兩比較,是一個關鍵點。你可以從這找出排序的方法是什麼?然後,在排序的那個比較表中可以查到,該排序的時間演算法一般規律。代進去就可以了。

資料結構的排序方法有哪些?

5樓:文庫精選

內容來自使用者: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...

6樓:網友

題目似乎不是很完整。

(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

7樓:果典熊經賦

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)。

8樓:八卦星人小林

氣泡排序,快速排序,堆排序。

氣泡排序(bubble sort),是一種電腦科學領域的較簡單的排序演算法。

它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。

這個演算法的名字由來是因為越大的元素會經由交換慢慢「浮」到數列的頂端,故名「氣泡排序」。

快速排序(quicksort)是對氣泡排序的一種改進。

快速排序由c. a. r.

hoare在2023年提出。它的基本思想是:通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小,然後再按此方法對這兩部分資料分別進行快速排序,整個排序過程可以遞迴進行,以此達到整個資料變成有序序列。

堆排序(heapsort)是指利用堆積樹(堆)這種資料結構所設計的一種排序演算法,它是選擇排序的一種。可以利用陣列的特點快速定位指定索引的元素。堆分為大根堆和小根堆,是完全二叉樹。

大根堆的要求是每個節點的值都不大於其父節點的值,即a[parent[i]] a[i]。在陣列的非降序排序中,需要使用的就是大根堆,因為根據大根堆的要求可知,最大的值一定在堆頂。

資料結構中內排序的問題

9樓:戶桖豔

以4為增量就是。

16 15 17(1,5,9三個位置的元素)做插入排序為15,16,17 排序完後還是放在1,5,9三個位置。

9 2 5 做插入排序為2,5,9 排序完後還是放在2,6,10三個位置。

4 13 8 做插入排序為4,8,13 排序完後還是放在3,7,11三個位置。

25 18 24 做插入排序為18,24,25 排序完後還是放在4,8,12三個位置。

因此最後的結果就是。

10樓:蝶舞王城

一趟排序後的結果為:

呵呵。。。不好意思,剛看到,把你急壞了吧!!!

資料結構快速排序問題,C語言資料結構 快速排序的問題

由於你傳遞的l是值傳遞,在快速排序內部出現了一個名字一樣的區域性變數,只是區域性變數被排序了,並不是傳入的變數被排序,可以採用傳地址的方式解決,或者不定義形參,直接採用全域性變數。我使用前者幫你實現了 再者,快速排序 有點問題,幫你修改了下 include include define maxsiz...

資料結構試題求解,資料結構試題,急求解。

1 錯。給的條件能確定連結串列含1個元素,而非空。2 錯。3 錯。m階b樹要求 葉上 至少m 2個元素,上面所謂的葉就是倒數第二層了,而三階平衡樹最底層可以有1個元素。1.下面程式段時間複雜度為 for int i 0 i for int j 0 j s i o n k 2 資料結構的儲存結構包括順...

C語言資料結構,C語言 資料結構

include include defineinfinity0 definemax vertex num10 最大頂點數 definemax edge num40 最大邊數typedefenumgraphkind typedefcharvertextype 頂點資料型別typedefstructar...