25,使用折半查找找到插入位置,并插入数字

#include <stdio.h>

/*

 使用折半查找找到插入位置,并插入数字

 */

void printArray(int nums[]);

void insertNum(int nums[],int key);

void main() {

    //已知有一列有序的数组,将4插入该数组里面

    int nums[6] = {1,3,5,7,9,0};

    int key = 8;

    printArray(nums);

    insertNum(nums,key);

    printArray(nums);

}


//插入数字

void insertNum(int nums[],int key){

    int min = 0;

    int max = 4;

    int mid = 0;

    while (min <= max) {

        mid = (min + max) / 2;

        if (key > nums[mid]) {

            min = mid + 1;

        }else if(key < nums[mid]){

            max = mid - 1;

        }else{

            break;

        }

    }

    for (int i=6; i>mid; i--) {

        nums[i] = nums[i-1];

    }

    nums[mid] = key;

    printf("该位置为%i\n",mid);

}


//打印数组

void printArray(int nums[]) {

    for (int i = 0; i<6; i++) {

        printf("%i ",nums[i]);

    }

    printf("\n");

}

阅读更多
个人分类: C语言
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭