算法
cxsmarkchan
Electrical Engineering
展开
-
array和list的排序算法对比(一):快速排序
一般来说,我们讨论排序都是针对数组结构。数组的特点是:可以很方便地进行随机访问,但是增删元素比较耗时。因此,针对数组的排序,通常会避免元素的增删操作,改为元素交换。同时,常采用二分的方法实现高效排序算法。 链表与数组相反,随机访问非常耗时,但增删元素很简单。因此链表的排序和数组也会有所不同。 这篇博客针对数组和链表的不同,分析了常用排序算法——快速排序在数组和链表中的实现。注:我们规定排序的语义原创 2016-03-08 23:41:08 · 4538 阅读 · 1 评论 -
array和list排序算法对比(二):归并排序
归并排序的特点是采用二分的策略,将数组的子数组进行排序,然后将两个有序的子数组合并成一个大的有序数组。如果采用数组结构,二分是非常简单的操作,但二分后的合并空间开销相对较大。如果采用链表结构,合并的空间开销是相对较小的,但二分则需要精心设计。这也造成了两种数据结构在算法设计上会有一定的差别,复杂度也不同。原创 2016-03-10 21:58:04 · 857 阅读 · 0 评论