左右區間為左閉合右閉合;
part的開始方向要和pivot的最初所取的方向相反
public
class
myquick
public
static
intpart
(int
a,int low ,
int high)
a[low]
= pivot;
return low;
}public
static
void
main
(string[
] args)
;quicksort
(a,0
,a.length)
;for
(int i:
a)}}
版本二:自己實現
注意點:
左右區間為左閉合右開;
public
class
quiksort
public
static
intpart
(int
array,
int left,
int right)
} pivotindex = j;
int temp =0;
temp = array[pivot]
; array[pivot]
= array[pivotindex]
; array[pivotindex]
= temp;
return pivotindex;
}public
static
void
main
(string[
] args)
;quicksort
(a,0
,a.length)
;for
(int i:
a)}}
小結:
1.關於有些判斷程式,為避免陣列下標越界,可以使用&&提前起到短路的功能,由此把下標索引放到下標訪問的前面。
2.關於左右劃分問題,以及其他的雙指標問題,要著重考慮邊界情況,即左指標一直走到最右邊以及右指標走到最左邊會怎麼樣。
兩個版本的getline函式
今天查了下msdn,發現getline這個函式有兩個版本,string getline basic istream getline 它們都是從輸入流獲取一行資料到指定的位置。它們的函式原型如下 首先看basic istream中的版本 該函式從輸入流中讀取 count 1個元素儲存到 str,最後再...
兩個排序演算法
然後貼 1 int num 10 2 time t tms 3 srand unsigned int time tms 生成種子 4for int i 0 i 10 i 生成陣列元素為10 的陣列59 1011 氣泡排序 12for int i 0 i 10 1 i 1324 25 1 int nu...
Linux安裝兩個版本的opencv
參考鏈結 還有關於cuda的方法,我沒試 原版本是3.1.0 因為想用opencv的legacy模組,所以安裝了2.4.13 pkg config modversion opencv 原本的版本安裝在 usr local include opencv和 usr local include openc...