1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
#include<stdio.h> #include<stdlib.h> #include<time.h>
void (int a[], int n) { for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (a[j]>a[j + 1]) { int temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } }
int search(int a[], int n, int num) { for (int i = 0; i < 10; i++) { if (a[i] == num) { return i; } } return -1; }
int search2(int a[], int n, int num) { int tou = 0; int wei = n - 1; int zhong = (tou + wei) / 2; while (tou <= wei) { printf("开始查找%d,%d,%dn", tou, wei, zhong); if (a[zhong] == num) { return zhong; } else if (a[zhong]>num) { wei = zhong - 1; zhong = (tou + wei) / 2; } else { tou = zhong + 1; zhong = (tou + wei) / 2; } } return -1; }
int search22(int a[], int n, int num) { for (int tou = 0, wei = n - 1, zhong = (tou + wei) / 2; tou <= wei; zhong = (tou + wei) / 2) { printf("开始查找%d,%d,%dn", tou, wei, zhong); if (a[zhong] == num) { return zhong; } else if (a[zhong]>num) { wei = zhong - 1; } else { tou = zhong + 1; } } return -1; } void main() { int a[10]; time_t tms; srand((unsigned int)time(&tms)); for (int i = 0; i < 10; i++) { a[i] = rand() % 100; printf("n随机数%d", a[i]); } sort(a,10); printf("nn排序后n"); for (int i = 0; i < 10; i++) { printf("%dn", a[i]); } int num; scanf("%d", &num); int x = search22(a, 10, num); if (x == -1) { printf("没有找到数据n"); } else { printf("找到数据%d", a[x]); } system("pause"); }
|
近期评论