首页 > 代码库 > 二分检索,顺序检索模板

二分检索,顺序检索模板

  1. #include <stdlib.h>
  2. #include <iostream>
  3. using namespace std;
  4. int cmp(const void *a, const void *b)
  5. {
  6. return ( *(int *)a - *(int *)b );
  7. }
  8. int binary_search( int *a, int n, int key ) //二份检索
  9. {
  10. qsort(a, n, sizeof(a[0]), cmp);
  11. int mid, front=0, back=n-1;
  12. while (front<=back)
  13. {
  14. mid = (front+back)/2;
  15. if (a[mid]==key)
  16. return mid;
  17. if (a[mid]<key)
  18. front = mid+1;
  19. else back = mid-1;
  20. }
  21. return -1; //没有返回-1;
  22. }
  23. int Sequential_search(int a[], int n, int key) //顺序检索
  24. {
  25. for(int i=0; i<n; i++)
  26. if(a[i] == key) return i;
  27. return -1;
  28. }



来自为知笔记(Wiz)


附件列表

     

    二分检索,顺序检索模板