对序列:12,45,7,32,15,40,64,9,18,26,30

来源:百度知道 编辑:UC知道 时间:2024/06/20 05:32:18
对序列:12,45,7,32,15,40,64,9,18,26,30
用快速排序法进行由小到大的排序
1、写出实现代码
2、代码加上注释
C++

快速排序法是交换排序法的一种。它采用了一种分治的策略,通常称其为分治法。
分治法的基本思想是,将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。分为:分解,求解,组合三步。
快速排序法的基本思想为:在无序区中任选一个数值,使它左边的无序区都小于它,右边的无序区都大于它。然后两边的无序区参照该方法依次类推,直到最后一个元素。最终完成排序。
快速排序的最坏情况是,所选的中间值的左边或右边无序区为空,而完跑到另一边。这种快速排序法每次只能将一个数排序,这时的执行效率最低。

做什么操作?

先用,split分割一下这对序列,然后以数据类型添加到数据库中,然后在进行从库中按输入值的正序读取就可以,这是我想的最快的方法!

用什么写?你说的是数据结构还是C++ 还是C语言!

代码如下:

int a[]={12,45,7,32,15,40,64,9,18,26,30];
qsort((void)*a,11,sizeof(int),compare);

其中compare为比较函数:
int compare(const void &arg1,const void *arg2)
{
if((int)arg1 > (int)arg2) return 1;
if((int)arg1 < (int)arg2) return -1;
return 0;

}