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

}

相关文章推荐

折半查找和插入排序

  • 2015年05月31日 12:06
  • 1KB
  • 下载

利用折半查找,寻找元素在数组中合适恰当的位置

import java.util.Scanner; public class zheBan { public static void main(String args[]) { Scanner...

POJ 2318 || TOYS (叉积判断左右位置进行折半查找

给你一个矩形的左上角和右下角的坐标,以及从左到右把矩形划分为若干个空间的线段。 这些线段都给出X的坐标,所以线段的两端坐标为,(Ui,Y1)  ( Li,Y2). 在给出M个点的坐标,求每个空间内...
  • FXXKI
  • FXXKI
  • 2015年03月23日 23:42
  • 319

数组的排序,反转,折半查找,插入

数组的排序,反转,折半查找,插入 分类: J2SE2011-12-31 01:37 1544人阅读 评论(1) 收藏 举报 pivot算法searchinsertstring面试 ...

折半查找插入排序法

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

对一个有序数组进行折半查找和把一个整数插入这个数组序列,使其仍旧有序

1.对一个有序的数组进行二分查找的两种方式。 2.将一个整数插入到该数组的序列中,使新得到的数组序列仍然有序。 class HalfSearh { public static void mai...

选择,冒泡排序,折半查找,插入

#include void selectSort(int nums[], int length); void bubbleSort(int nums[], int length); int fin...
  • ll_xyls
  • ll_xyls
  • 2015年10月20日 21:40
  • 191

指针初步学习,运用指针进行冒泡排序,选择排序,插入排序和折半查找

在以前存储数据都是

数组的排序,反转,折半查找,插入

数组的使用中要注意:  1.下标越界问题;  2.操作数组时候,先要分析,有个整体的思路。 选择排序,冒泡排序,快速排序面试会考到,其中快速排序代码复杂些。下面着重分析下快速排序...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:25,使用折半查找找到插入位置,并插入数字
举报原因:
原因补充:

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