快速排序与直接插入排序的结合

#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

用快排减小待排序列的规模,然后在较小规模的序列中使用直接插入排序

你可能感兴趣的:(DS&Alogrithm)