java数组操作排序小练习
2012-10-10 21:58
246 查看
练习:有一个有序的数组。想要将一个元素插入到该数组中,还要保证该数组时有序的。问:如何获取该元素在数组中的位置————折半的深层演化
怎么做呢?
class Example1_1
{
public static void main(String[] args)
{
int arr[]={1,2,3,4,5,7,8,90,};//有序表
//折半查找调用
int key=Search(arr,82);
System.out.println("Key:"+key);
}
//定位方法
public static int Search(int []arr,int key)
{
int min=0;
int max=arr.length-1;//最小,最大的角标初始化
int mid;
while(min<=max) //当最小角标和最大角标同时存在且max>=min时
{
mid=(min+max)/2; //折半
if (key>arr[mid]) //大的话
min=mid+1; //往后找
else if (key<arr[mid]) //小的话
max=max-1; //往前找
else
return mid;
}
return min+1;//返回的是要插入的元素的角标
}
}
怎么做呢?
class Example1_1
{
public static void main(String[] args)
{
int arr[]={1,2,3,4,5,7,8,90,};//有序表
//折半查找调用
int key=Search(arr,82);
System.out.println("Key:"+key);
}
//定位方法
public static int Search(int []arr,int key)
{
int min=0;
int max=arr.length-1;//最小,最大的角标初始化
int mid;
while(min<=max) //当最小角标和最大角标同时存在且max>=min时
{
mid=(min+max)/2; //折半
if (key>arr[mid]) //大的话
min=mid+1; //往后找
else if (key<arr[mid]) //小的话
max=max-1; //往前找
else
return mid;
}
return min+1;//返回的是要插入的元素的角标
}
}
相关文章推荐
- Java基本功练习五(一维数组相关操作[声明、创建、乱序、排序、查找]和方法的重载举例[浅议])
- java-数组静态初始化、选择排序、冒泡排序、数组的折半查找、折半查找练习
- [Java 11] ArraysDemo 数组简单的排序,填充操作
- Java 数组练习——排序和查找
- 堆排序,堆增删操作,Java数组实现堆排序
- Java第四章【流程控制与数组、数组的操作【遍历、排序、查找】】
- [Java 11] ArraysDemo 数组简单的排序,填充操作
- 《黑马程序员》java笔记->【02】数组的常见操作:遍历,排序,查找
- Java实现的数组去重与排序操作详解
- Java_数组操作_排序
- Java基础——函数+数组概述+数组操作(获取最值_排序_折半查找+进制转换)
- java中对数组的排序的基本练习
- 每天一个java练习之数组常用操作(1)
- 《黑马程序员》java笔记->基本数据类型包装类及自动拆箱装箱原理,数组排序练习字符串切割
- java学习之路 之 面向对象编程-main方法的语法、数组排序、操作数组的工具类、数组操作常见问题
- java数组4种排序方法练习
- JAVA中,数组的操作与排序
- Java数组练习(三)选择排序
- Java常用类库——Arrays类(用于普通数组操作)、比较器(Comparable、Comparator 用于对象排序)的使用
- java数组操作1——排序