码迷,mamicode.com
首页 > 编程语言 > 详细

二分查找与快速排序算法

时间:2018-07-25 20:10:04      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:行操作   color   一半   find   二分   class   就是   hal   位置   

 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 }

 

二分查找与快速排序算法

标签:行操作   color   一半   find   二分   class   就是   hal   位置   

原文地址:https://www.cnblogs.com/mingyoujizao/p/9367769.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!