数据结构之直接插入排序

直接插入排序: 

void InsertSort(Sqlist &L)
{
    int i, j;
    for(i = 2;i <= L.length;++i) {
        if(L.r[i].key

快速排序:

基本思想:通过一趟排序,将待排序分割成两个独立的部分,其中一部分记录的关键字均比另一部分小

特点:

①每一次的子表的形成是采用两边向中间交替逼近法;

②由于每躺对各子表的操作类似,可采取递归算法。

快速排序的算法:

void QSort(Sqlist &L,int low,int high)
{
    pivotloc = partition(L,low,high);    //pivotkey是中心位置
    QSort(L,low,pivotloc-1);
    QSort(L,pivotloc+1,high);
}

/*返回中心点下标*/
int partition(Sqlist &L,int low,int high)
{
    L.r[0]=L.r[low];
    pivotkey=L.r[low].key;
    while(low < high) 
    {
        while(low < high && L.r[high].key>pivotkey) ++high;
            L.r[high] = L.r[low];        
        while(low < high && L.r[low].key

你可能感兴趣的:(数据结构,算法)