2010-06-20 230 views
0

這是一個我在Wikipedia網站找到的問題(我想很好地學習排序算法)。無論如何,這是一個問題 - 你能向我解釋我能如何展示它嗎?倒插排序!

練習:假定I爲反轉的在陣列A.

+0

我很好奇!這是哪個網站進入這樣的細節?你能提供一個鏈接嗎?它可能會幫助像你這樣的未來提問者。 – 2010-06-20 15:57:46

+0

我想你應該提供更多有關該算法的信息... – TooAngel 2010-06-20 15:59:09

+0

確定這是鏈接:http://en.wikipedia.org/wiki/Insertion_sort – user355002 2010-06-20 16:04:51

回答

4

看的this pageImplementationAnalysis部的數量顯示該算法插入排序(A)在時間O(N + I)中運行。

考慮算法提出有:

private static void insertionsort() 
{ 
    int i, j, t; 
    for (i=1; i<n; i++) 
    { 
     j=i; 
     t=a[j]; 
     while (j>0 && a[j-1]>t) 
     { 
      a[j]=a[j-1]; 
      j--; 
     } 
     a[j]=t; 
    } 
} 

注意,while循環爲v[i]迭代,其中v[i]是由元件i反轉的數目運行。這應該使證明非常容易理解。

+0

aha非常感謝我閱讀它!我明白了:) – user355002 2010-06-20 16:39:16

+0

也接縫,你知道算法和關於數據結構的每一件事情,我可以讓你的雅虎ID更多的幫助? :) – user355002 2010-06-20 16:40:00

+0

對不起,我不使用雅虎,但你可以在這個網站上提出你的問題。這樣你就可以更快得到答案。即使我不知道某事,其他人肯定會這樣做。 – IVlad 2010-06-20 16:44:38