資源簡介
數據結構與算法實驗題 5.1 排序
★實驗任務
通過交換元素位置實現排序的算法通常稱為交換排序算法。如果只允許交換相鄰元素的位置,則稱為相鄰交換排序算法,如冒泡排序算法。
給定 n 個待排成升序的整數,求出相鄰交換排序算法交換元素位置的最少次數。
★數據輸入
輸入第一行為一個正整數 n (n < =500000)
輸入第二行為 n 個整數,這些整數可能有相同的。
★數據輸出
輸出相鄰交換排序算法交換元素位置的最少次數。
PS:請用 long long 來計算次數,輸入輸出請用 scanf,printf
★實驗任務
通過交換元素位置實現排序的算法通常稱為交換排序算法。如果只允許交換相鄰元素的位置,則稱為相鄰交換排序算法,如冒泡排序算法。
給定 n 個待排成升序的整數,求出相鄰交換排序算法交換元素位置的最少次數。
★數據輸入
輸入第一行為一個正整數 n (n < =500000)
輸入第二行為 n 個整數,這些整數可能有相同的。
★數據輸出
輸出相鄰交換排序算法交換元素位置的最少次數。
PS:請用 long long 來計算次數,輸入輸出請用 scanf,printf
代碼片段和文件信息
#include
using?namespace?std;
int?a[500005]m[500005]n;
long?long?ans=0;//記錄逆序對
void?msort(int?lint?r)
{
if(l==r)?return;
int?mid=(l+r)/2;
msort(lmid)msort(mid+1r);
int?i=lj=mid+1k=l;
while(i<=mid&&j<=r)
{
if(a[i]<=a[j])
{
m[k]=a[i];
k++;
i++;
}
else?if(a[i]>a[j])
{
m[k]=a[j];
k++;
- 上一篇:x新安江模型c++
- 下一篇:Quicksum(C語言)
評論
共有 條評論