static
void
Main(
string
[] args)
{
//
test1();
//
List<int> li = new List<int>();
//
li[18] = 99;
//
test2();
//
int[] list = { 5, 4, 1, 3, 2, 7, 6 };
//
int[] list = {6,5};
//
int[] list = { 5,5,5};
//
int[] list = {7,6,5,4,3,2,1 };
//
int[] list = { 7,6,6,5,5,4,4,3,3,2,2,1,1};
//
int[] list = { 6, 5, 1, 2, 7, 3, 6, 9, 8 };
int
[] list
=
new
int
[
200
];
Random rand
=
new
Random();
for
(
int
i
=
0
; i
<
200
; i
++
)
{
list[i]
=
rand.Next(
120
);
}
QuickSort(list,
0
, list.Length
-
1
);
Console.Read();
}
private
static
void
QuickSort(
int
[] list,
int
start,
int
end)
{
if
(start
>=
end)
return
;
int
midvalue
=
list[start];
//
为了性能
int
border
=
start;
//
border右边是大于等于midvalue的第一个元素
for
(
int
i
=
start
+
1
; i
<=
end; i
++
)
{
if
(list[i]
<
midvalue)
//
需要放到border左边
{
Swap(list, i,
++
border);
}
}
Swap(list, border, start);
QuickSort(list, start, border
-
1
);
QuickSort(list, border
+
1
, end);
}
private
static
void
Swap(
int
[] list,
int
i,
int
j)
{
int
temp
=
list[i];
list[i]
=
list[j];
list[j]
=
temp;
}