算法
文章平均质量分 91
chiyxme
这个作者很懒,什么都没留下…
展开
-
不一样的二分查找-只比较一次的2分查找实现
[*]正常进行2次比较的二分查找实现,取列表中点值,(1)先比较x是否小于v[mid],若小于则说明在mid的左侧,(2)继续比较x是否大于v[mid],若大于则说明在mid的右侧(3)否则mid即为x的位置[code="c"]int binsearch(int x, int v[], int n) { int low, high, mid; low = 0; high =...2012-07-11 00:49:27 · 182 阅读 · 0 评论 -
常用排序算法的实现(C语言版)-堆排序
堆排序:[code="c"]/***排序过程中使用到的堆的结构*/typedef struct heap { int heapSize; int *ap; int apLength;} Heap;/**调整i位置上的元素,以保持最大堆的性质*/void maxHeapify(int a[], int i, int hSize) { int...2012-08-01 22:01:21 · 214 阅读 · 0 评论 -
常用排序算法的实现(C语言版)-快速排序
快速排序:[code="c"]/**将r位置中的位置移动到正确位置q上,并返回q,使得在a[p]..a[q-1] < a[q],a[q+1]..a[r] > a[q]*/int partition(int a[], int p, int r);void qSort(int a[], int p, int r);void quickSort(int a[], in...2012-08-01 22:08:29 · 84 阅读 · 0 评论 -
常用排序算法的实现(C语言版)-基数排序
基数排序:[code="c"]#include #include "algosort.h"/*被排序元素的最大位数,4则意味着只能排序< 10000 的数*/#define WIDTH 4 #define MAXK 10 //位数划分基于的基数,10表示为10进制划分void radixSort(int a[], int n) { int i; void...2012-08-01 22:14:43 · 240 阅读 · 0 评论 -
数据结构之-二叉查找树的实现(C语言版)
修正:前驱与后继操作有误,修正二叉查找树是满足如下性质的二叉树:[list][*]设x为二叉树中的一个结点,如果y是x的左子树中的一个结点,则key[y]data) { curNode = curNode->left; } else { curNode = curNode->right; } } return curNode;}//返回二...2012-08-11 00:32:14 · 306 阅读 · 0 评论 -
数据结构之-跳跃表(skip list, scala版)
概述 SkipList 是由William Pugh发明的一种数据结构,它的作用类似平衡二叉树,对查找,删除,插入操作的时间复杂度为O(logN),是一种十分高效的查找结构。SkipList使用随机化的平衡方案取代了平衡二叉树的严格的平衡方案,因此它也是一种随机化的数据结构。SkipList基于并联的链表,是对有序的链表附加上随机个数的前进的链接,使得在查找过程中可以快速地跳过部分链...原创 2013-09-03 10:42:36 · 281 阅读 · 0 评论