博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
爪哇国新游记之二十七----数组的二分查找
阅读量:5016 次
发布时间:2019-06-12

本文共 2076 字,大约阅读时间需要 6 分钟。

代码:

import java.util.ArrayList;import java.util.List;public class Bit {    int max;    int min;    int[] arr;    public Bit(int[] arrInput) {        // 找出极值        for (int i = 0; i < arrInput.length; i++) {            if (max < arrInput[i]) {                max = arrInput[i];            }            if (min > arrInput[i]) {                min = arrInput[i];            }        }        // 新建数组        arr = new int[max - min + 1];        // 数组插值        for (int i : arrInput) {            int index = i - min;            arr[index]++;        }    }    public boolean hasDuplicateItem() {        for (int i = 0; i < arr.length; i++) {            int value = arr[i];            if (value > 1) {                return true;            }        }        return false;    }    public List
getSortedList() { List
ls = new ArrayList
(); for (int i = 0; i < arr.length; i++) { int value = arr[i]; if (value != 0) { for (int j = 0; j < value; j++) { ls.add(min + i); } } } return ls; } public List
getUniqueSortedList() { List
ls = new ArrayList
(); for (int i = 0; i < arr.length; i++) { int value = arr[i]; if (value != 0) { ls.add(min + i); } } return ls; } public int[] getUniqueSortedArray(){ List
ls=getUniqueSortedList(); int[] arr=new int[ls.size()]; for(int i=0;i
rightBound) { // 左边界大于右边界,已经找不到值 return -1; } else { if (sortedArray[curr] < seachValue) { // 当当前下标对应的值小于查找的值时,缩短左边界 leftBound = curr + 1; } else { // 当当前下标对应的值大于查找的值时,缩短右边界 rightBound = curr - 1; } } } } public static void main(String[] args) { int[] arr = { -2, -1, 3, 5, 7, 9, 30, 4, -2, 5, 8, 3 }; Bit b = new Bit(arr); System.out.println("排序后数组"); int[] arr2=b.getUniqueSortedArray(); for(int i=0;i

输出:

排序后数组0:-21:-12:33:44:55:76:87:98:302不在数组arr2中5排在数组arr2的第4个7排在数组arr2的第5个-2排在数组arr2的第0个90不在数组arr2中

 

转载于:https://www.cnblogs.com/xiandedanteng/p/3888410.html

你可能感兴趣的文章
Java基础之IO流,合并流对象SequenceInputStream对文件的切割与合并操作
查看>>
电梯调度(四)
查看>>
leetcode--Single Number II
查看>>
navicat 链接oracle时出现的各种问题
查看>>
关于Qt隐藏任务栏已及导致QDialog关闭整个程序问题
查看>>
Python3 三元表达式、列表推导式、生成器表达式
查看>>
C#Execl
查看>>
SpringBoot 整合websocket
查看>>
国内GIT托管服务
查看>>
IMGUI
查看>>
Stanford Parser学习入门(2)-命令行运行
查看>>
数学期望
查看>>
zabbix性能调优(1)
查看>>
jquery事件绑定例子
查看>>
RMQ问题
查看>>
Latex使用整理
查看>>
foj2024
查看>>
VS2012的SVN插件VISUALSVN
查看>>
WebForm 生成并显示二维码
查看>>
抓水王
查看>>