直接插入排序(Insert Sort)


直接插入排序

思路分析:在一個有序的數組中為要插入的元素找到指定的插入位置,但這個位置並不一定是最后排序結果中對應元素的最終位置。

時間復雜度:最壞情況(整個序列逆序時)時間復雜度為O(n2),最優情況(整個序列初始順序,從大到小時)時間復雜度為O(n),平均情況時間復雜度為O(n2)。

源代碼:

void InsertSort(int R[],int n)
{
    int i,j,temp;
    for(i=1;i<n;i++)    //插入排序共需要插入n個元素,但此處我們默認序列中存在R[0]這個元素,故之后需進行n-1次插入操作
    {
        temp=R[i];
        j=i-1;
        while(j>=0&&temp<R[j])    //比插入元素大的元素進行后移操作
        {
            R[j+1]=R[j];
            --j;
        }
        R[j+1]=temp;    //插入要插入的元素
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM