歸併排序 小和問題

2021-10-02 21:21:39 字數 791 閱讀 7002

問題描述

在乙個陣列中, 每乙個數左邊比當前數小的數累加起來, 叫做這個陣列的小和。 求乙個陣列的小和。

樣例[1,3,4,2,5]

1左邊比1小的數, 沒有;

3左邊比3小的數, 1;

4左邊比4小的數, 1、 3;

2左邊比2小的數, 1;

5左邊比5小的數, 1、 3、 4、 2;

所以小和為1+1+3+1+1+3+4+2=16

思路:歸併排序

#include

using

namespace std;

intmerge

(int array,

int l,

int mid,

int r)

while

(p1 <= mid)

while

(p2 <= r)

for(i =

0; i <= r - l; i++

)return res;

}int

mergesort

(int array,

int l,

int r)

intsmallsum

(int array,

int length)

intmain()

;int length =7;

int s =

smallsum

(array, length)

; cout << s

}

歸併排序 小和問題

public class mergesort sortprocess arr,0,arr.length 1 遞迴 public static void sortprocess int arr,int l,int r int mid l r l 1 sortprocess arr,l,mid t n ...

小和問題 歸併排序

在乙個陣列中,每乙個數左邊比當前數小的數累加起來,叫做這個陣列的小和。例子 輸入 1,3,4,2,5 輸出 16 1左邊比1小的數,沒有 3左邊比3小的數,1 4左邊比4小的數,1 3 2左邊比2小的數,1 5左邊比5小的數,1 3 4 2 所以小和為1 1 3 1 1 3 4 2 16實現的基本原...

小和問題(歸併排序)

在乙個陣列中,每乙個數左邊比當前數小的數累加起來,叫做這個陣列的小和。求乙個陣列的小和。描述 1,3,2,51,5 1左邊比1小的數 0 3左邊比3小的數 1 2左邊比2小的數 1 51左邊比51小的數 2,3,1 5左邊比5小的數 2,3,1 所以小和為0 1 1 2 3 1 2 3 1 14 解...