TBOX提供了各种常用算法,对容器中的元素进行各种操作,这里主要介绍下排序和查找算法。 排序算法目前支持如下几种: 1. 快速排序:tb_quick_sort 2. 堆排序: tb_heap_sort 3. 插入排序:tb_bubble_sort 4. 冒泡...
分类:
其他好文 时间:
2014-09-20 19:38:49
阅读次数:
183
要了解堆排序,首先要了解堆的概念,因为本文主要研究堆排序的算法,此处对数据结构堆只是给出概念:n个元素的序列{k1,k2,...kn},当且仅当满足如下关系时,称之为堆。
k[i] (或
k[i] >= k[2i]且k[i] >= k[2i+1])
比如:序列96、83、27、38、11、09(或12、36、24、85、47、30、53、91)都是堆。
如果将堆对应的一维数...
分类:
其他好文 时间:
2014-09-20 08:52:15
阅读次数:
188
Collection of algorithm for sorting
heap sort 堆排序
The heapsort algorithm can be divided into two parts.
In the first step, a heap is built out
of the data. The h...
分类:
其他好文 时间:
2014-09-19 19:24:45
阅读次数:
220
//////最小堆排序,把所有的排序元素放在数组中。构成一个完全二叉树。///publicclassMyHeapSort{//////创建最小堆////////////publicvoidCreateHeap(Listlist,intlow,inthigh){inttemp=0;intk=0;//从...
分类:
其他好文 时间:
2014-09-19 19:05:55
阅读次数:
220
#include "string"#include "vector"#include "time.h"typedef std::basic_string tstring;typedef std::vector IntVec;// iIndexAdjust 从0计数.... left = 2i+1;r...
分类:
其他好文 时间:
2014-09-19 19:04:05
阅读次数:
182
目录 1、堆排序介绍 2、堆排序实例 3、c++ 完整代码 4、参考资料内容 1、堆排序介绍 ...
分类:
其他好文 时间:
2014-09-19 15:09:25
阅读次数:
169
经典的7种排序算法 原理C++实现
排序是编程过程中经常遇到的操作,它在很大程度上影响了程序的执行效率。
7种常见的排序算法大致可以分为两类:第一类是低级排序算法,有选择排序、冒泡排序、插入排序;第二类是高级排序算法,有堆排序、排序树、归并排序、快速排序。下面就分别介绍一下这几种排序算法,并会给出c++的实现,实现代码均经过测试。
一、低级排序算法
1. 选择排序
排序过程:给定一个...
分类:
编程语言 时间:
2014-09-19 13:56:05
阅读次数:
336
快速排序
void quick_sort(int array[], int begin, int end)
{
if(end > begin)
{
int pivot = begin;
int last_small = begin;
int i = end;
while(last_small != i)
{
if(array[i] <= array[pivot])
...
分类:
其他好文 时间:
2014-09-18 18:54:34
阅读次数:
181
Heapsort (堆排序)是最经典的排序算法之一,在google或者百度中搜一下可以搜到很多非常详细的解析。同样好的排序算法还有quicksort(快速排序)和merge sort(归并排序),选择对这个算法进行分析主要是因为它用到了一个非常有意思的算法技巧:数据结构 - 堆。而且堆排其实是一个看...
分类:
编程语言 时间:
2014-09-16 23:29:41
阅读次数:
406
C++代码 1:#include #include using namespace std;//调整堆//s:需要调整的非终端节点的位序//len:整个待排序数组的长度void HeapAdjust(int a[], int s, int len){ int tmp = a[s]; ...
分类:
其他好文 时间:
2014-09-13 22:38:16
阅读次数:
213