数据结构和算法
文章平均质量分 76
怪盗基德KID
这个作者很懒,什么都没留下…
展开
-
查找第K小元素(C语言版)
关于查找数列中第k小的元素的常见方法:1、先排序整个数列然后取第k-1个数2、利用选择排序3、选择算法4、利用计数排序的思想5、利用堆排序思想(一)6、利用堆排序思想(二)原创 2014-10-22 14:16:11 · 10856 阅读 · 0 评论 -
基数排序(C语言版)
#include #include #include #include //0 1 2 ..... 9#define RADIXCOUNT 10#define RANDMAX 100000struct Node { int value; struct Node *next;};struct Queue { struct Node *head;原创 2014-10-14 16:38:17 · 7718 阅读 · 2 评论 -
直接插入排序(C语言版)
#include #include #include void insertSort(int array[], int size);void printArray(int *array, int size);int main(int argc, char const *argv[]){ int size = 0; scanf("%d", &size); as原创 2014-10-05 01:35:46 · 3285 阅读 · 0 评论 -
归并排序(C语言版)
#include #include #include #include void mergeSort(int array[], int size);void _mergeSort(int array[], int low, int high);void merge(int array[], int leftLow, int leftHigh, int rightLow, int ri原创 2014-10-03 14:20:06 · 3123 阅读 · 0 评论 -
希尔排序(C语言版)
#include #include #include #include void getRandArray(int array[], int size);void shellSort(int array[], int size);void shellPass(int array[], int size, int increment);void printArray(int arra原创 2014-10-10 13:53:40 · 2096 阅读 · 0 评论 -
常见的9种内部排序(C语言实现)
现在已经把常见的9种内部排序算法都用C语言实现了,为了方便自己和大家查看,就弄了这么一个类似于导航目录的东西。一、冒泡排序 冒泡排序(C语言版)二、选择排序 选择排序(C语言版)三、直接插入排序 直接插入排序(C语言版)四、希尔排序 希尔排序(C语言版)五、归并排序 归并排序(C语言版)六、基数原创 2014-11-16 13:56:56 · 4792 阅读 · 0 评论 -
9种常见内部排序算法的性能比较
在写完这9种常见的内部排序算法后总觉得需要把它们拿出来好好比较一番,看看各个算法的性能优劣。我们先来看看各个排序算法的理论性能,再看实际性能。原创 2014-11-15 23:01:03 · 5630 阅读 · 1 评论 -
堆排序(C语言版)
堆排序的思想:利用大顶堆(小顶堆)堆顶记录的是最大关键字(最小关键字)这一特性,使得每次从无序中选择最大记录(最小记录)变得简单。堆排序算法的步骤如下:1.将待排序列R[1],R[2]....R[n]构建为大顶堆;2.将堆顶元素R[1]和最后一个元素交换;3.由于交换后有可能会破坏堆的性质,所以要进行自顶向下进行调整,使剩余元素成为新的大顶堆;4.重复执行第二步和第三步直至n减小为1,则整合数列排序完成。原创 2014-10-21 00:53:25 · 3373 阅读 · 0 评论 -
冒泡排序(C语言版)
#include #include #include void swap(int *value1, int *value2);void bubbleSort(int array[], int size);void printArray(int *array, int size);int main(int argc, char const *argv[]){ int size =原创 2014-10-01 13:41:43 · 4422 阅读 · 0 评论 -
快速排序(C语言版)
#include #include int findPivotIndex(int array[], int low, int high) { int pivot = array[low]; while(low < high) { while(low = pivot) { --high; } array[low] = array[high]原创 2014-09-30 16:42:46 · 3302 阅读 · 0 评论 -
计数排序(C语言版)
先说说计数排序的思想:计数排序假定待排序的所有元素都是介于0到K之间的整数;计数排序使用一个额外的数组countArray,其中第i个元素是待排序数组array中值等于i的元素的个数。然后根据数组countArray来将array中的元素排到正确的位置。 算法的步骤如下:找出待排序的数组中最大和最小的元素统计数组中每个值为i的元素出现的次数,存入数组countArray的第i项对所有的计数累加(从countArray中的第一个元素开始,每一项和前一项相加)反向填充目标数组:将每个元素i放在新数组原创 2014-10-17 00:39:02 · 5223 阅读 · 0 评论 -
选择排序(C语言版)
#include #include #include void swap(int *value1, int *value2);void selectSort(int array[], int size);void swap(int *value1, int *value2);void printArray(int *array, int size);int main(int ar原创 2014-10-01 13:42:47 · 2735 阅读 · 0 评论 -
一个简单的全文搜索引擎
全文搜索引擎原创 2016-07-17 18:50:32 · 1844 阅读 · 0 评论