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

来源:互联网 发布:淘宝代购专柜衣服真假 编辑:程序博客网 时间:2024/05/16 07:06
1.对一个有序的数组进行二分查找的两种方式。
2.将一个整数插入到该数组的序列中,使新得到的数组序列仍然有序。
class  HalfSearh{public static void main(String[] args) {int arr[]={1,3,4,7,9,13,17};//System.out.println(search(arr,8));       // System.out.println(search1(arr,8));System.out.println(getIndex(arr,8));insert(arr,8);}/**折半查找的第一种方式public static int search(int arr[],int key){int min=0;int max=arr.length-1;int mid=(min+max)/2; while(key!=arr[mid]){        if(key>mid)min=mid+1;else max=mid-1;if(min>max)return -1; mid=(min+max)/2;}return mid;}*//**折半查找的第二种方式public static int search1(int arr[],int key){ int min=0,max=arr.length-1,mid=(min+max)/2; while(min<=max){ if(key>arr[mid]) min=mid+1; else if(key<arr[mid]) max=mid-1; else return mid; } return -1;}*//**如何在一个有序数组里面插入一个值,使得这个数组仍然有序。*/   public static int getIndex(int arr[],int key){ int min=0,max=arr.length-1,mid=(min+max)/2; while(min<=max){ if(key>arr[mid]) min=mid+1; else if(key<arr[mid]) max=mid-1;else return mid; mid=(min+max)/2; } return min;} public static void insert(int[]b,int key ){       int a=getIndex(b,key);   int []arr1=new int[b.length+1];   for(int i=0;i<a;i++) arr1[i]=b[i];      for(int j=a+1;j<arr1.length;j++)   arr1[j]=b[j-1];      arr1[a]=key;   for(int x=0;x<arr1.length;x++)   System.out.print(arr1[x]+"  ,"); }}

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 怀孕憋尿憋的小腹疼怎么办 半夜憋尿憋的小腹疼怎么办 新生儿大便次数较多怎么办 母猎生下三天没有奶怎么办 孩孑大便干不爱喝水怎么办 发那科1050报警怎么办 plc模块bf亮了怎么办 plc模块df亮了怎么办 西门子触摸屏进不了主画面怎么办 pos机显示白屏怎么办 洗衣机的门坏了怎么办 西门子洗衣机门坏了怎么办 拆线线断在肉里怎么办 总线绝对值编码器方向反了怎么办 台达伺服报警009怎么办 台达plc禁止上传怎么办? 潜水泵电机启动绕组断线了怎么办? 永磁电机磁没了怎么办 热水器热水管坏了怎么办 松下伺服驱动器坏了怎么办 步进电机功率小了怎么办 电三轮电机坏了怎么办 电动车钢圈撞变形了怎么办 电动车后轮钢圈变形了怎么办 软油管接头渗油怎么办 一只单眼皮一只双眼皮怎么办 儿童轻轻泥干了怎么办 5d轻轻泥干了怎么办 手机炉石一直闪退怎么办 鸟之羽任务失败怎么办 巫师3没血没药怎么办 荣威rx5灯光不亮怎么办 点滴打没了回血怎么办 加了低标号的油怎么办 别克车钥匙丢了怎么办 霜子哀伤断了怎么办 侧车窗外有雨水怎么办 昂科威15t变速箱异响怎么办 别克昂科拉一公里9毛怎么办? 雷诺科雷傲车钥匙丢了怎么办 奥迪a6l烧机油了怎么办