【顺序查找表】 包含顺序查找和二分查找,顺手加入了快排
2015-01-05 11:14
176 查看
#include <iostream> using namespace std; int a1[10]={1,3,5,7,8,2,6,4,9,0}; int a3[10]={0,1,2,3,4,5,6,7,8,9}; int size1=10; int a2[9]={1,3,5,7,8,2,6,4,9}; int a4[9]={1,2,3,4,5,6,7,8,9}; int size2=9; int seqSearch(int x,int a[],int size) { int i=0; if (a[i]==x) return i; a[i]=x; for (i=size-1;a[i]!=x;i--); //利用空间换取时间 if (i==0) return -1; else return i; } //不重不漏是此类算法的关键 例如二分查找、快速排序 int binSearch(int x,int a[],int size) { int low=0; int high=size-1; while (low<=high) { if (a[(low+high)/2]>x) high=(low+high)/2-1; else if (a[(low+high)/2]<x) low=(low+high)/2+1; else return (low+high)/2; } if (low>high) return -1; } void quickSort(int a[],int left,int right) { if (left>=right) return; int low=left,high=right,key=a[low]; while (low<high) { while (low<high&&a[high]>key) high--; a[low]=a[high]; while (low<high&&a[low]<key) low++; a[high]=a[low]; } a[low]=key; quickSort(a,left,low-1); quickSort(a,low+1,right); } int main() { quickSort(a2,0,size2-1); cout<<binSearch(7,a2,size2)<<endl; return 0; }
相关文章推荐
- 算法:静态查找表(Static Search Table)(顺序查找、二分查找、插值查找、斐波纳契查找)
- 静态查找表 - 顺序查找、二分查找、插值查找、斐波纳契查找
- C语言查找算法之顺序查找、二分查找(折半查找)
- Qt如何加入Objective-C代码(包含如何查找Objective-C的库)
- php顺序查找和二分查找示例
- 查找算法集:顺序查找、二分查找、插值查找、动态查找(数组实现、链表实现)
- 查找算法集:顺序查找、二分查找、插值查找、动态查找(数组实现、链表实现)
- 查找算法系列之简单查找:顺序查找、二分查找、分块查找
- 查找算法集:顺序查找、二分查找、插值查找、动态查找(数组实现、链表实现)
- 静态表查找(顺序查找,二分查找,斐波那契查找)
- 顺序表二分查找递归算法
- 用java实现的一些插入(顺序和乱序)和查找(顺序和二分)
- 数据结构基础(2) --顺序查找 & 二分查找
- 数据结构上机实验之顺序查找(二分查找)
- 顺序查找与二分查找
- php顺序、二分查找
- 顺序表的增删查改、二分查找、冒泡和快速排序
- 查找算法之顺序查找和二分查找
- 两种简单查找算法之顺序查找和二分查找
- 数据结构与算法专题之查找与排序——静态查找(顺序、二分、哈希)