算法
孤独八进制
这个作者很懒,什么都没留下…
展开
-
选择排序
选择最小的把它放到前面 搜索找到最小的 把它放到第一位 可以通过移动元素来获得空间,但最快的方式是直接交换 重复找出第二小的 、第三小的void SelectionSort(Vector &arr){ for (int i = 0; i < arr.size()-1; i++) { int minIndex = i; for (int j原创 2013-05-20 21:09:24 · 419 阅读 · 0 评论 -
插入排序
每个后来的元素都插入到合适的位置 从第一个元素开始(已经被排好)相对第一个元素插入下一个以此类推。。。通过移动腾出空间void InsertionSort(Vector &v){ for (int i = 1; i < v.size(); i++) { int cur = v[i]; // slide cur down into position to le原创 2013-05-21 21:50:18 · 408 阅读 · 0 评论 -
归并排序
分而制之的算法将输入的数据分成两半为两半进行递归排序将两份合并易分离难结合只是从中间进行划分将两部分按顺序合并保存void MergeSort(Vector &v){ if (v.size() > 1) { int n1 = v.size()/2; int n2 = v.size() - n1; Vector l原创 2013-05-22 20:58:57 · 417 阅读 · 0 评论 -
快速排序
它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速原创 2013-05-23 20:54:27 · 396 阅读 · 0 评论