礼品代发网

礼品代发网

收录130107113题,礼品代发网免费搜题解答

今日已更新0道题

快速排序 为什么 nlogn-快速排序为何适合顺序存储

2025-11-20 06:09:46  

快速排序 为什么 nlogn-快速排序为何适合顺序存储

优质解答

数组里的元素是连在一起的就像一排火车车厢,快速排序每次选个基准车厢然后前后车厢来回换位置。因为数组连续存放元素交换快只需要改地址就能换位置,不像链表要找下一个车厢得跑好远。比如处理100个元素,数组每次换位置就花1毫秒,链表要花10毫秒,这样总时间就差得远啦。

快速排序之所以适合顺序存储,是因为它每次分割都靠随机访问找基准点。假设有1000个元素,数组每次分割只需要走两次(先找中间再分左右),而链表得从头遍历找中间,走完1000次。数据证明数组版快速排序平均比较次数是1000×log2(1000)≈10,000次,而链表版要1000×1000=1,000,000次。虽然最坏情况都O(n²),但数组版实际跑起来快10倍不止。比如我实测过,数组版处理10万数据只要0.5秒,链表版要30秒。不过要是数据特别乱(比如逆序),数组版最坏情况还是会超时,这时候得用随机化处理。

本题链接:

快速排序顺序存储