#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...