1.確定分界點 mid = l + r >> 2
2.遞迴排序left、right部分
3.使用雙指標演算法歸併排序left、right部分
1.總的數量等於 left邊中逆序對的數量、right邊中逆序對的數量、left、right兩邊的元素共同組成的逆序對的數量
2.如何求算left、right兩邊的元素共同組成的逆序對的數量?
#include #include using namespace std;
typedef long long int ll;
const int n = 100010;
int a[n],tmp[n];
ll merge_sort(int *a , int l, int r)
else
while(i <= mid) tmp[k++] = a[i++];
while(j <= r) tmp[k++] = a[j++];
//在放回原陣列
for(i = l, j = 0; i <= r; i++, j++)
a[i] = tmp[j];
return res;
}int main(void)
leetcode刷題筆記324題 擺動排序 II
leetcode刷題筆記324題 擺動排序 ii 問題描述 給定乙個無序的陣列 nums,將它重新排列成 nums 0 nums 1 nums 2 nums 3 的順序。示例 1 輸入 nums 1,5,1,1,6,4 輸出 乙個可能的答案是 1,4,1,5,1,6 示例 2 輸入 nums 1,3...
刷題筆記 二 排序
1 氣泡排序 將最大值放到末尾,一直縮小範圍到第一位 2 排序演算法的穩定性是指經過排序之後,能使值相同的資料保持原順序中的相對位置不變 解析 穩定性,就是指,不亂排序,很有規矩,能按照排序的演算法執行,相異的資料排序正確,相同的資料之間的前後關係也能不會錯位3 常見的內部排序有 並非所有排序都必須...
C LeetCode刷題 排序
排序篇 題名刷題通過率難度 56合併區間 31.2 中等57 插入區間 30.4 困難75 顏色分類 48.6 中等147 對鍊錶進行插入排序 50.7 中等148 排序鍊錶 52.7 中等164 最大間距 43.0 困難179 最大數 26.7 中等242 有效的字母異位詞 c leetcode刷...