1.快速排序的由来
1.快速排序是对冒泡排序算法的改进
2.快速排序是C.A.R.Hoare在1960年提出
2.快速排序的优越性及弊端
1.相较于冒泡排序以及快速排序的时间复杂度O(n2),快速排序复杂度为O(nlogn) (平均情况)
2.最坏的情况是,每次所选的中间数是当前序列中的最大或最小元素,这使得每次划分所得的子表中一个为空表,另一子表的长度为原表的长度-1。这样,长度为n的数据表的快速排序需要经过n趟划分,使得整个排序算法的时间复杂度为O(n2)。(引用百度百科)
3.代码实现
1.准备部分
void assigment(int* array,int n)//为数组赋值
{
srand(time(0));
for(int i=0;i<n;i++)
{
*(array+i)=rand()%50+1;
}
}
void printarray(int* array,int n)//打印数组
{
for(int i=0;i<n;i++)
{
printf("%d ",*(array+i));
}
}
现在我们有了一个数组,其中的数字还未排序完成。