差點搞不懂快排

2022-07-03 19:45:10 字數 1066 閱讀 8216

#include #include 

#include

#include

#include

using

namespace

std;

const

int num = 25;/*

* 這裡預設使用的pivot是a[left]

partition將 a分成兩部分,左邊的部分小於pivot,右邊的部分大於pivot**/

///兩種partition方式都是對的

/*int partition(int a,int left, int right) //分割

///不會像下面乙個一樣產生交叉,因為在每個while迴圈裡面都保證了這一點

a[left]=base;

return left;}*/

int partition(int a,int left, int

right)

std::swap(a[left],a[right]);

///交叉的下標對應的元素不用交換,使用下面一步來完成一次分割

std::swap(a[l],a[right]);///

因為此時a[right] 是小於 pivot的,所以需要交換

return

right;

}void quicksort(int a,int left,int

right)

}int

main()

; srand(time(null));

for(int i = 0; i < num; i++)

a[i] = rand() % 100

;

//a[i] = i ;

random_shuffle(a,a+num);

for(int i = 0; i < num; i++)

cout

0, num - 1);

for(int i = 0; i < num; i++)

cout

}

搞不懂的暴搜

暴搜優化.分析 令第 i 種裝備的數量為sum i 顯然如果 sum i 不為 0 那麼這種裝備必選一件,在這時需要考慮的總方案數為 max sum i 1 其中 sum i 50。最壞情況下所有 sum 的值都相同,令它們都等於 k,則方案數為 kn k 當 k 取 3 時取到最大值 3n 3 在...

UDPClient 的奇特現象,實在搞不懂

我有個專案,設計了乙個udp服務端。是通過udpclient 的乙個例項 同一埠 提供收發服務。當專案上線測試後,奇怪的現象發生。如果重啟過伺服器的話,伺服器可以執行一段較長時間無異常。但一段時間之後,奇怪的事情來了。1 例如之前有a b c等n個客戶端已經連線到服務端,服務端一直持續為它們 提供服...

搞不懂C語言 指標的意義

以下是c 中的指標用法,c語言的指標除了可以隨意讀取記憶體之外,不知道有啥好處,我把指標比喻成陣列下表。而記憶體就如一條超級大的陣列。我真的越來越 搞不懂指標的意義,處了可以越界有啥好處了。mystruct struct new mystruct mystruct refmystruct ref s...