2017.10.30 学习笔记

本文介绍了快速排序(Quicksort)的实现原理与过程,并提供了详细的伪代码示例。此外,还对比了稳定排序(Stable_sort)与普通排序(Sort)的区别,指出稳定排序适合用于字典序排序。

主要学习排序

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进行排序。


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值