常用算法
二分查找
int binary_search(int a[],int len,int goal) { int beg = 0; int end = len - 1; while(beg <= end) { int middle = (end + beg + 1)/2; if(a[middle] == goal) return middle; if(a[middle] > goal) end = middle - 1; else beg = middle + 1; } return -1; }
快速排序
void quick_sort(int a[],int l,int h) { if(l < h) { int key = a[l]; int low = l; int high = h; while(low < high) { while(low < high && a[high] > key) //把比key小的放到低端 { high--; } a[low] = a[high]; while(low < high && a[low] < key) //把比key大的放到高端 { low++; } a[high] = a[low]; } a[low] = key; //key放到中间 quick_sort(a,l,low-1); quick_sort(a,low+1,h); } }
本博客内容均来自网络,如有雷同,是我抄袭!