#include
using namespace std;
void DireInsSort(int a[], int low, int high) //Direct Insert Sorting
{
int i,j;
int temp;
for(i=low+1; i<=high; i++)//把a[i](i=low+1~high)插入到a[0~i-1]中,初始假定a[low]已排好序
{
temp=a[i]; //将a[i]暂存于temp中
j=i; //用j来指代当前位置i,因为i是用来标识整个循环过程的
//于i处从后往前查找插入位置,若temp=low+1&&temp=high){
DireInsSort(a,low,high);
return; //用于结束递归的条件
}
i=low; //默认low为中心值
j=high;
temp=a[i]; //暂存中心值对应的记录
while(itemp) j--;
//将排序码小于等于中心值的记录放入a[i]
if(i
用快排减小待排序列的规模,然后在较小规模的序列中使用直接插入排序