歸併排序顧名思義有乙個化歸合併的過程,那要合併在這之前就有分離,這就是歸併排序的步驟:先將要排序的一串數字劈開,劈到最小有序數列(也就是乙個乙個的時候,只有乙個那肯定有序啊);第二步再將他們逐漸合併,繼而變成乙個有序數列。
演算法複雜度:
最好情況:o(nlogn)
最壞情況:o(nlogn)
平均情況:o(nlogn)
空間複雜度:o(n)
穩定性:穩定
從以上的資料
可以看出歸併排序比普通的排序在複雜度上有了很好的提公升。
歸併排序的**實現:
上面這個**還可用於求逆序數對的個數。
關鍵就是這段**:
每日一題 歸併排序
第一次寫部落格,大佬們輕點噴 注 作為乙個計算機專業的本科生,每日做題也都是必不可少的,這個系列裡會更新一些我平時做的一些題目,大都比較簡單,不少題目在其他部落格裡也可以找到,我撰寫這些部落格僅用於記錄。這是一道比較簡單的資料結構的題目,先來看題 本題要求實現二路歸併排序中的歸併操作,待排序列的長度...
每日一題 歸併排序
作為乙個計算機專業的本科生,每日做題也都是必不可少的,這個系列裡會更新一些我平時做的一些題目,大都比較簡單,不少題目在其他部落格裡也可以找到,我撰寫這些部落格僅用於記錄。這是一道比較簡單的資料結構的題目,先來看題 本題要求實現二路歸併排序中的歸併操作,待排序列的長度1 n 1000。void mer...
每日一題 92 歸併排序
題目來自網路 題目 1 基於陣列的歸併排序 題目 2 基於鍊錶的歸併排序 題目 1 基於陣列的歸併排序 思路 借助分治的思想,總是先對待排序進行分割,之後再對兩個子串行進行合併,生成乙個有序序列。時間複雜度為o nlogn 空間複雜度為o n void merge int narr,int nsta...