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

原创 2015年11月20日 22:12:48

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

}

折半查找插入排序法

我们知道折半查找只能在有序的数组里才能使用。 其实在插入排序过程中,大家细心的话会发现,每次找插入位置时,这段元素是有序的,那么在这里为使用折半查找提供了条件。  但是用传统的折半查找肯定不行,因...
  • wangdong20
  • wangdong20
  • 2011年11月19日 20:39
  • 1615

折半查找确定插入数组中元素的位置

问题: 给出一组有序的整数,要在这组整数中插入一个数字,如何确定该插入数字的下标。 解决方案: 对于一组有序的整数,要用到查找,一定为折半查找。不同的是折半查找是查找是否存在元素,而这个要查找位...
  • HLK_1135
  • HLK_1135
  • 2016年01月21日 15:35
  • 894

python寻找插入位置

给定一个已经升序排好序的数组,以及一个数target,如果target在数组中,返回它在数组中的位置。   否则,返回target插入数组后它应该在的位置。   假设数组中没有重复的数。以下是简单的...
  • Irean_Lau
  • Irean_Lau
  • 2015年01月28日 22:35
  • 711

插入排序多种实现

思想:arr,i=1,len=arr.length,flag=arr[i]; 第一趟,比较flag与arr[0]的大小,若flag > arr[0],另arr[i++] = flag;否则, ar...
  • qq_34893429
  • qq_34893429
  • 2017年04月04日 14:42
  • 147

折半查找数据,折半查找插入位置

//折半查找函数int binary_search(code array[],int search){ int middle,front=0,rear=9; while(front { middle...
  • u012296253
  • u012296253
  • 2013年10月22日 15:28
  • 680

插入元素到有序数组,二分搜索查找插入位置

当一个数组有序时,要向其中插入元素,可以先使用二分搜索查找其要插入的位置,位置确定后可以执行插入操作。 其中二分搜索的循环体如下(部分代码,具体见文章最后): while(low...
  • x_i_y_u_e
  • x_i_y_u_e
  • 2015年07月02日 07:57
  • 1786

折半查找与猜数字游戏

1.折半查找 #include int main() { int arr[] = {1,2,3,4,5,6,7,8,9,10}; int key = 7; int left = 0; int...
  • iliuxi_
  • iliuxi_
  • 2017年04月16日 18:51
  • 156

【LintCode】Search Insert Position 搜索插入位置

给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。 你可以假设在数组中无重复元素。样例 [1,3,5,6],5 → 2 [1,3,5,6]...
  • wutingyehe
  • wutingyehe
  • 2015年07月15日 22:07
  • 1021

C语言 找数字,用(折半查找法或二分查找法)

找数字,用(折半查找法或二分查找法) 注意:基于 有序数组int main() { int arr[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int key = 1;...
  • Monster66jxx
  • Monster66jxx
  • 2016年09月25日 14:53
  • 3452

Lintcode 搜索插入位置

给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。 你可以假设在数组中无重复元素。 您在真实的面试中是否遇到过这个题?  ...
  • Hk_john
  • Hk_john
  • 2017年04月05日 17:29
  • 205
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:25,使用折半查找找到插入位置,并插入数字
举报原因:
原因补充:

(最多只允许输入30个字)