一 、数组排序

  • 冒泡排序:是通过循环遍历调整相邻元素的顺序的机制来实现数组的排序,其实质是相邻元素的比较,按照升序或降序的方式调整元素的位置,如下图:

  • 插入排序:
            每循环一次都将一个待排序的元素所对应的数据按其顺序大小插入到前面已经排序的序列的合适位置,直到全部插入排序完为止,其难点在于如何在前面已经排好序的序列中找到合适的插入位置。

  • 插入排序的实质:
            将数组分为有序区和无序区,定义一个标记无序区第一个元素的定位变量,将该元素与前面的有序区内元素遍历比较,找到该元素应该插入位置,然后将应插入位置到待插入元素所在位置之间的元素后移一位,最后再将待插入元素插入到应插入的位置,有序区扩增一位,无序区减少一位,定位变量再次后移,锁定后面无序区第一位元素位置。

二、数组元素的查找

  • 二分法查找:
            搜索数据与有序数组(比如升序)中间元素比较以确定在中间元素左边还是右边,如果在右边,则调整最小搜索索引值,然后进入下次循环;如果在左边,则调整最大搜索索引值,然后进入下次循环;如果相等则当前位置就是查找数据所在位置,停止循环,示例如下:
public static void main(String[] args) {int [] number= {1,2,3,4,5};int data=3;int low=0;int high=number.length-1;while(low!=high) {int middle=(low+high)/2;if(data<number[middle]) {high=middle-1;}else if(data>number[middle]) {low=middle+1;}else {System.out.println(middle);break;}}}       

Java之数组(下)相关推荐

  1. java中数组的复制

    数组复制使我们在编程过程中经常要使用到的,在java中数组复制我们大概能够分为两种,一种是引用复制,还有一种就是深度复制(复制后两个数组互不相干). 以下我们就通过測试的方法来具体看看什么是引用复制和 ...

  2. Java RGB数组图像合成 ImageCombining (整理)

    1 /** 2 * Java RGB数组图像合成 ImageCombinning (整理) 3 * 4 * 2016-1-2 深圳 南山平山村 曾剑锋 5 * 6 * 注意事项: 7 * 1.本程序为 ...

  3. java集合——数组列表(ArrayList)+散列集(HashSet)

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java集合--数组列表(ArrayList)+散列集(HashSet) 的相关知识: 0.2 ...

  4. java 字符数组与字符串_用于字符串和数组的5种简单有效的Java技术

    java 字符数组与字符串 Java通常会排在前五种最流行的编程语言中,因此可以理解. 它是一种通用语言,非常容易学习,因为它是一种高级语言,并且可以满足许多用例. 由于这些原因,Java是一门很棒的 ...

  5. java从数组查找指定整数_如何在Java中使用重复项查找整数数组中的K个缺失数字?...

    java从数组查找指定整数 自从我讨论任何编码或算法面试问题以来已经有很长时间了,因此我想重新考虑一种最流行的基于数组的编码问题,即在给定数组中查找缺失的数字. 在进行编程工作面试之前,您可能已经听说 ...

  6. java温故笔记(二)java的数组HashMap、ConcurrentHashMap、ArrayList、LinkedList

    为什么80%的码农都做不了架构师?>>>    HashMap 摘要 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型.随着JDK(Java Develo ...

  7. java定义数组_java中数组的三种定义方式_java中数组的定义及使用方法(推荐)...

    java中数组的三种定义方式 java中,数组是一种很常用的工具,今天我们来说说数组怎么定义 [java] view plain copy /** * 数组的三种定义方法 * 1.数组类型[] 数组名 ...

  8. java 中数组的创建 数组遍历 以及数组的输出(打印)

    什么是数组? 如果我们需要创建一个 int 类型变量,那么我们只需要 int a; 如果我们需要创建五个 int 类型变量,那么我们只需要int a1; int a2; int a3; int a4; ...

  9. Java基础——数组应用之StringBuilder类和StringBuffer类

    接上文:Java基础--数组应用之字符串String类 一.StringBuffer类 StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和 ...

  10. java面向对象数组_Java面向对象的构造器与数组对象

    Java开发离不开面相对象,那么面向对象如何来的?什么又是数组对象?今天小编就来与大家共同学习一下Java的面向对象的构造器与数组对象. 构造器:用于创建对象时执行初始化.当创建一个对象时eg:new ...

最新文章

  1. 医疗:ERP进销存系统(8)
  2. 【双11】阿里云边缘节点ENS助力淘宝构建音视频通信网络
  3. JSP的9个内置对象-request
  4. DotNetBar.Bar作为容器使用的方法及Text更新原理
  5. php loop循环 拿到键名
  6. hibernate 镜像下载_虚拟光驱软件下载手机版-虚拟光驱免费中文版64位下载v5.8.0...
  7. asp mysql 留言本_手把手教你设计ASP+ACCESS留言本
  8. 如何构建config文件
  9. Python代码混淆工具,Python源代码保密、加密、混淆
  10. “十三五”输电通道规模倍增 重点建设配电网
  11. 小米pro笔记本2017款BIOS降级0603
  12. linux如何用命令进入u盘,linux 下如何打开u盘
  13. Photoshop设计精讲精练(读书笔记)
  14. 细数WOW里暴雪的“亲儿子”们
  15. 2022年氧化工艺考试练习题模拟考试平台操作
  16. iOS 图标和文字自定按钮
  17. 重地坤 (易經大意 韓長庚)
  18. 币圈小白必读的6本加密货币书籍
  19. Qt数据库应用21-数据分组导出
  20. Java折半二叉树,成都汇智动力-Java实现常用排序算法

热门文章

  1. Array对象的三种属性实例
  2. KVM安装(RHEL_6.4x64)
  3. [数据模型] 数据表三种关联的概述
  4. 全国首款网页版(web)真3D商城
  5. linux 使用 ioctl 参数
  6. apache sentry
  7. 数据时代,嵌入式工程师必须知道的八大加密算法
  8. 《XHTML》pdf
  9. sublime test3 安装及配置
  10. Eclipse断点种类