博客专栏  >  编程语言   >  STL经典算法我实现

STL经典算法我实现

囊括所有STL经典的算法,完全不涉及C++高级特性的自我实现。剖析STL的内在魅力,将经典算法扩展到C中去。

关注
2 已关注
9篇博文
  • STL经典算法集锦<八>之IntroSort

    STL的sort算法的优化策略: 1、  数据量大时采用QuickSort,分段递归排序。 2、  一旦分段后的数据量小于某个门槛,为避免Quick Sort的递归调用带来的额外负荷,就改用Ins...

    2012-05-08 20:21
    2464
  • STL经典算法集锦<七>之随机洗牌(random_shuffle)

    将一个数组中的元素序列打算顺序进行重排,并需要保证重排后的每一种结果是等概率且随机的。下面的两种算法哪一种是正确的?(注:random(a,b)返回一个a~b的随机整数) 1. for i=1 to...

    2012-05-08 13:31
    6284
  • STL经典算法集锦<六>之排列(next_permutation/prev_permutation)

    STL中涉及到数组的排列的有两个函数,即next_permutation/prev_permutation,分别用于求上一个以及下一个排列。两函数的算法使用的原理大体相同。以next_permutat...

    2012-05-07 15:54
    1738
  • STL经典算法集锦<五>之查找(lower_bound/upper_bound/binary_search)

    这三个算法都比较的常用,而且具有一定的相似的性。理论依据也很明显,下面就直接贴出自己的实现版本。其中lower_bound与upper_bound实现了两个版本。版本一与STL的实现方法完全相同,以数...

    2012-04-25 17:01
    1786
  • STL经典算法集锦<四>之rotate

    STL在rotate上的优化是极尽其所能的。分别对前向访问,双向访问,随机访问的数据结构实现了三个版本的rotate。下面是自己按照对三种算法的理解,自己进行的实现。实现中我尽力避免使用C++的特性,...

    2012-04-25 16:47
    1892
  • STL经典算法集锦<三>之partition与qsort

    STL的分割算法主要使用了仿函数来实现。而此处的分割则不,此处实现了两种形式的分割算法:非随机分割算法、随机分割算法(随机算法是在非随机算法的基础上封装而成)。而快速排序则只需简单依赖分割算法就能实现...

    2012-03-24 20:15
    1370
  • STL经典算法集锦<二>之堆算法

    堆算法主要包括建立最大堆和堆排序算法。所使用建堆的数组将以0开始存储数据。 下面将以两种方法建堆:自底向上的建堆(STL和算法导论中使用到的)、自顶向下建堆(即插入建堆的方法) 公共操作: ...

    2012-03-24 19:55
    1283
  • STL经典算法集锦<一>之list::sort

    算法中使用到的数据结构: typedef struct Node* Link; struct Node{ int value; Link next; };算法代码: //链表的归并 void ...

    2012-03-23 15:27
    1144
  • STL经典算法集锦

    所谓经典算法是指STL中有一定的复杂性并且又经常用到的算法。其他算法多是较为容易,利用STL操作很容易实现就不在此之列了。 共计15个算法,包括:                 1、list::...

    2012-03-23 10:01
    1102

img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部