1、快速排序:
(1)基本思想:通过一趟排序将要排序的数据分割成独立的两个部分,一部分的所有数据都比另一部分所有的数据都要小,然后按照此方法对这两部分的数据分别进行快速排序,整个排序的过程可以递归进行,以此将整个数据变成有序的序列。
a,先从数列中取出一个数作为基准数。
b,分区过程中,将比这个数大的数全放在它的右边,小于或者等于它的数放在它的左边。
c,再对左右区间重复第二步,直到各个区间只有一个数。
(2)过程:
(3)代码实现:
void
QuickSort(
int
*numbers,int
start,int
last
)
{
if(
start
<
last
)
{
int
i =
start;
int
j =
last;
int
temp =
numbers[start];
while(
i < j )
{
while(
i < j &&
numbers[j] >= temp )
{
j--;
}
if(
i < j )
{
numbers[i++]
=
numbers[j];
}
while(
i < j &&
numbers[i] < temp )
{
i++;
}
if(
i < j )
{
numbers[j--]
=
numbers[i];
}
}
numbers[i]
= temp;
QuickSort(
numbers,start,i
- 1 );
QuickSort(
numbers,i+1,last);
}
}
void
Show(
int
*arr,int
len
)
{
for(
int
i = 0 ; i <
len
;i ++ )
{
cout<<arr[i]<<"
";
}
cout<<endl;
}
int
main()
{
int
arr[] = { 14,11,34,56,78,89,3,40,67,99};
int
len =
sizeof(arr)/sizeof(arr[0]);
Show( arr,len );
QuickSort(arr,0,len-1);
Show(arr,len);
return
0;
}
本文详细介绍了快速排序算法的基本思想、过程及代码实现。快速排序是一种高效的排序方法,通过一趟排序将数据分割成两部分,每部分再进行递归排序。
7022

被折叠的 条评论
为什么被折叠?



