索引数组

来源:互联网 发布:linux 批量压缩文件夹 编辑:程序博客网 时间:2024/05/16 00:42

<span style="font-size:18px;">// 索引数组    int array[] = {3, 2, 6, 9, 8, 5, 7, 1, 4};    int count = sizeof(array) / sizeof(array[0]);    int indexs[count];    for (int i = 0; i < count; i++) {        indexs[i] = i;    }//    int flag = 1;//    for (int i = 0 ; i < count - 1 && 1 == flag; i++) {//        flag = 0;//        for (int j = 0; j < count - i - 1; j++) {//            if (array[indexs[j]] > array[indexs[j + 1]]) {//                int  temp = indexs[j];//                indexs[j] = indexs[j + 1];//                indexs[j + 1] = temp;//                flag = 1;//            }//        }//    }    //索引数组 选择排序      int minIndex = 0;    for (int i = 0; i < count - 1; i++) {        minIndex = i;        for (int j = minIndex + 1; j  < count; j++) {            if (array[indexs[minIndex]] > array[indexs[j]]) {                minIndex = j;            }        }        if (minIndex != i) {            int temp =indexs[minIndex];            indexs[minIndex] = indexs[i];            indexs[i] = temp;                    }    }    for (int i = 0; i < count; i++) {        printf("a[%2d] = %2d\n",indexs[i], array[indexs[i]]);    }</span>
 索引数组:折半查找

<span style="font-size:18px;"> for (int  i = 0 ; i < count; i++) {        printf("[%d] : %d\n", indexs[i], array[indexs[i]]);    }    int start = 0 ,end = count - 1, mid = 0;    printf("please input  a number\n");    int target;    scanf("%d", &target);    //printf("%d\n", target);    while (start <= end) {        mid = (start + end) / 2;        if (array[indexs[mid]] > target) {            end = mid - 1;        } else if (array[indexs[mid]] < target) {            start = mid + 1;        } else {            break;        }    }</span>


0 0
原创粉丝点击