关闭

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

标签: 折半查找插入数字算法
164人阅读 评论(0) 收藏 举报
分类:

#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");

}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:40397次
    • 积分:2813
    • 等级:
    • 排名:第13148名
    • 原创:252篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条