2017.10.30 学习笔记

主要学习排序

Quicksort 快排,采用边搜索边排序的方法,首先设置i=0,j=数组大小-1

随后利用递归的方法来继续流程

代码:来自百度百科

void Qsort(int a[], int low, int high)
{
    if(low >= high)
    {
        return;
    }
    int first = low;
    int last = high;
    int key = a[first];/*用字表的第一个记录作为枢轴*/
 
    while(first < last)
    {
        while(first < last && a[last] >= key)
        {
            --last;
        }
 
        a[first] = a[last];/*将比第一个小的移到低端*/
 
        while(first < last && a[first] <= key)
        {
            ++first;
        }
         
        a[last] = a[first];    
/*将比第一个大的移到高端*/
    }
    a[first] = key;/*枢轴记录到位*/
    Qsort(a, low, first-1);
    Qsort(a, first+1, high);
}

猜测应该是由于 first的位置不固定,导致递归的次数不固定,导致时间复杂度不固定


除此以外学习了 Stable_sort 从后到前字母进行Stable_sort便可以完成字典序的排序,而Sort具有随机性有可能会使得原有的顺序发生变化,所以字典序不推荐使用sort进行排序。


昨天体测,现在全身散架,这一年身体素质差了不少,胖了十斤.

猜你喜欢

转载自blog.csdn.net/qq_39380075/article/details/78393171
今日推荐