
数据结构与算法
gxiaob
这个作者很懒,什么都没留下…
展开
-
二分查找
一、递归写法#include//设数组是由小到大的顺序排序的int search_loc(int a[],int k,int low,int high){ int mid; if(k>a[high]||k return -1; if(low>high) return -1; mid=(low+high)/2; if(a[mid]==k) retur原创 2013-10-01 23:22:12 · 1411 阅读 · 0 评论 -
堆排序
//首先建立大根堆,结点从0开始到n-1,建堆的时候从n/2-1到0,不断的筛选//新的结点交换有可能破换原有的秩序。//建立好大根堆之后呢,从n-1到0遍历结点,不断的将最后一个结点(依次递减)元素和//首结点元素交换,保证最后一个结点(依次递减)始终最大,与此同时,首结点再交换之后//秩序发生了变换,因此重新构建大根堆.....#includevoid heap_ada原创 2013-10-04 23:31:06 · 1452 阅读 · 0 评论 -
shell排序
#includeusing namespace std;void ShellPass(int R[],int d){ int j; int temp; for(int i=d;i if(R[i] temp=R[i];j=i-d; do{ //实现内部小循环R[0],R[3],R[6],R[9],do-while R[j+d]=R[j];原创 2013-10-06 16:50:08 · 1325 阅读 · 0 评论 -
快速排序
#include#include#includeusing namespace std;void quicksort(int data[], int low, int high){ int i, pivot, j; if(low pivot = data[low]; i = low; j = high; while(i //cout原创 2013-10-06 16:35:54 · 1233 阅读 · 0 评论