二分查找与快速排序算法
Posted mingyoujizao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找与快速排序算法相关的知识,希望对你有一定的参考价值。
1 /**********二分查找*****************/ 2 int half_find(int *num,int size, int a) 3 { 4 int i=0; 5 int low=0; 6 int high=size-1; 7 int mid;//记录中间位置 8 while(low<=high) 9 { 10 mid = (low+high)/2; 11 if(num[mid] == a) 12 return mid;//返回所在位置 13 if(num[mid] > a) 14 high = mid-1;//减去大的那一半 15 if(num[mid] <a) 16 low = mid+1;//减去小的那半 17 } 18 return false;//没找到 19 } 20 /**********快速排序算法*****************/ 21 void QuickSort(char s[],int low,int high) 22 { 23 int i; 24 int last; //记录基准的位置 25 if(low<high) //当数组中的元素个数大于1时,才进行操作 26 { 27 last=low; //选取第一个元素作为基准 28 //把小于基准元与大于基准元的分开,last记录它们分开的界限 29 for(i=low+1;i<=high;i++) 30 { 31 if(s[i]<s[low]) 32 swap(s,++last,i); 33 } 34 35 swap(s,last,low);//基准元与界限交换,这样的话,基准元两边就是一边大于,一边小于; 36 QuickSort(s,low,last-1); //对左区间递归排序 37 QuickSort(s,last+1,high);//对右区间递归排序 38 } 39 } 40 /*交换数组中的两个元素*/ 41 void swap(char s[],int i,int j) 42 { 43 int temp; 44 temp=s[i]; 45 s[i]=s[j]; 46 s[j]=temp; 47 }
以上是关于二分查找与快速排序算法的主要内容,如果未能解决你的问题,请参考以下文章