摘要: 散列表又叫哈希表,它是为了减少搜索空间,但又考虑到时间上设立的。 http://codeplayer.org/2013/11/210 参考网页#include #include #define m 17//#define HASH(k) k % m //除法散列法 #define A 0.85//#define HASH(k)... 阅读全文
posted @ 2015-07-17 19:56 yml435 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 堆排序算法原理 堆排序算法,就是利用二叉树的原理,我们知道,对于二叉树而言,具有一定的排序性质: 如 左节点是小于根节点的值,右节点的值肯定是大于根节点的值的,因此, 我们算是快能找到某一个元素 因为如果当前元素比要找的元素要大,那么就往右走,如果当前元素比要找的元素要小,那么往右找,呵呵,相 信如何树上存在这号元素的话,应该很快就能找到... 阅读全文
posted @ 2015-07-17 19:55 yml435 阅读(231) 评论(0) 推荐(0) 编辑
摘要: #ifndef HEAP_SORT_H#define HEAP_SROT_H#includevoid maxHeap(int *arr,unsigned int Length); void maxHeap(int *arr,unsigned int rootIndex,unsigned int heapSize);void builMaxHeap( int *arr,unsigned int he... 阅读全文
posted @ 2015-07-17 19:54 yml435 阅读(167) 评论(0) 推荐(0) 编辑
摘要: http://developer.51cto.com/art/201403/430986.htm这里唯一的注释就是为什么要先 从右边开始 即:while(arr[j]>=temp&&i=temp&&iright){ return ; } int i=left; int j=right; int temp=arr[left]; while(i!=j){ while(arr[j]>=tem... 阅读全文
posted @ 2015-07-17 19:53 yml435 阅读(181) 评论(0) 推荐(0) 编辑
摘要: void shellSort(int *arr,int Length){ int temp; for(int gap=Length/2; gap>0;gap/=2){ for(int i=0;i=0&&arr[k]>temp){ arr[k+gap]=arr[k]; k-=gap; } arr[k+gap]=temp; } } }}上面的希尔排序很简单:... 阅读全文
posted @ 2015-07-17 19:52 yml435 阅读(117) 评论(0) 推荐(0) 编辑
摘要: #include#includevoid insertSort(int *arr,unsigned int Length); void insertSortMy(int *arr,unsigned int Length); void insertSort(int *arr,unsigned int Length){ for(int iter=1; iter=0&&arr[i]>temp){ a... 阅读全文
posted @ 2015-07-17 19:51 yml435 阅读(160) 评论(0) 推荐(0) 编辑
摘要: #ifndef BUBBLING_INSERT_H[#define BUBBLING_INSERT_Hvoid bubblingInsert(int *arr,int Length); void bubblingInsert(int *arr,int Length){ int temp; for(int i=0;iarr[j+1]){ temp=arr[j]; arr[j]=arr... 阅读全文
posted @ 2015-07-17 19:50 yml435 阅读(125) 评论(0) 推荐(0) 编辑
摘要: #ifndef SELECT_SORT_H#define SELECT_SORT_Hvoid selectSort(int *arr,int Length); void selectSort(int *arr,int Length){ int min,temp; for(int i=0;iarr[j]){ min=j; } } if(min!=i){ temp=arr[min]... 阅读全文
posted @ 2015-07-17 19:49 yml435 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 归并排序是分治算法的一个典型的体现: 将原问题分解为若干的子问题进行求解就可以了。分治算法的步步骤:归并排序的步骤:第2-4行将原问题分成子问题,第5行将这些子问题进行合并。原代码:#ifndef MERGE_SORT_H#define MERGE_SORT_Hvoid mergeArr(int left,int mid,int right,int *arr); void mergeSort... 阅读全文
posted @ 2015-07-17 19:48 yml435 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 钢条切割问题的两种解法#ifndef IRON_CUT_PRB_H#define IRON_CUT_RPB_H#include int ironCutPrb(int *ironPrice,int Length); //这个是基于递规逄法的int ironCutPrb_optimize(int *ironPrice,int Length); //这个是基于双层循环的。#endif #include... 阅读全文
posted @ 2015-07-17 19:47 yml435 阅读(300) 评论(0) 推荐(0) 编辑