快速排序法:实际上是对冒泡排序法的一种改进。
算法:是描述求解问题方法的操作步骤集合。
快速排序法这一算法的基本思想是:首先设定一个分界值(一般是数组中的起始元素值),通过该分界值将数组的元素值分成左右两部分(这里是把数组元素值从小到大排序,所以将大于分界值的数组元素值分到右边,小于分界值的数组元素值分到左边)。同理,分别对左右两部分的数组元素值重复上述步骤:设定起始元素值为分界值,将大于分界值的数组元素值分到右边,小于分界值的数组元素值分到左边,最后实现数组元素值从小到大排序。上述过程实际上就是算法的递归实现。
接下来看具体实现代码:
用快速排序法对数组元素值2,4,7,3,1,5,9,6,8进行从小到大排序
#include <stdio.h>
typedef int KeyType; //用新的类型名KeyType表示整型
typedef struct
{
KeyType key;
}DataType; //用DataType表示结构体类型
void QuickSort(DataType a[],int low,int high)
{
int i=low,j=high;
DataType temp=a[low]; //取数组中第一个数据元素为分界值
while(i<j)