• 数组高级冒泡排序

方法一:(冒泡排序)

/** 冒泡排序* 1,返回值类型,void* 2,参数列表,int[] arr* *  第一次:arr[0]与arr[1],arr[1]与arr[2],arr[2]与arr[3],arr[3]与arr[4]比较4次第二次:arr[0]与arr[1],arr[1]与arr[2],arr[2]与arr[3]比较3次第三次:arr[0]与arr[1],arr[1]与arr[2]比较2次第四次:arr[0]与arr[1]比较1次*/public static void bubbleSort(int[] arr) {for (int i = 0; i < arr.length -1 ; i++) {   //外层循环决定循环几次for (int j = 0; j < arr.length - 1 - i; j++) {  //-1为了防止索引越界,-i为了提高效率if (arr[j] > arr[j + 1]) {swap(arr,j,j+1);}}}}

方法二:(选择排序)

/** 选择排序* 1,返回值类型void* 2,参数列表int[] arr* *    第一次:arr[0]分别与arr[1-4]比较,比较4次第二次:arr[1]分别与arr[2-4]比较,比较3次第三次:arr[2]分别与arr[3-4]比较,比较2次第四次:arr[3]与arr[4]比较,比较1次*/
public static void selectSort(int[] arr){for (int i = 0; i < arr.length -1; i++) {for (int j = i+1; j < arr.length; j++) {if (arr[i] > arr[j]){swap(arr,i,j);}}}}

上面用到的swap方法:

/** 换位操作* 1,返回值类型,void* 2,参数列表int[] arr,int i,int j* * 如果某个方法,只针对本类使用,不想让其他类使用就可以定义成私有的*/
public static void swap(int[] arr, int i, int j) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}

主方法引用

public static void main(String[] args) {int[] arr = {21, 11, 88, 44, 23};//bubbleSort(arr);selectSort(arr);for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}
}
  • 数组高级二分查找法

前提

数组必须为有序的,否则输入结果没有意义

public static int getIndex(int[] arr,int value){int min = 0;int max = arr.length -1;int mid = (min + max)/2;while (arr[mid] != value){   //当中间值不等于要找的值,就开始循环查找if (arr[mid] > value){max = max - 1;}else if (arr[mid] < value){min = min + 1;}mid = (min + max)/2;if (min > max){  //如果最小索引大于了最大索引,表示在数组里不存在该值 返回-1return -1;}}return mid;
}

主方法引用

public static void main(String[] args) {int[] arr1 = {11, 22, 33, 44, 55, 66};System.out.println(getIndex(arr1, 33));
}
  • Arrays类中封装的排序方法——sort

int[] arr2 = {22,66,11,33,55,44};
System.out.println(Arrays.toString(arr2));//数组转字符串
Arrays.sort(arr2);  //排序
System.out.println(Arrays.toString(arr2));
  • Arrays类中封装的获取元素索引的方法——binarySearch

int[] arr3 = {11,22,33,44,55,66};
System.out.println(Arrays.binarySearch(arr3,22));
System.out.println(Arrays.binarySearch(arr3,21));//没有元素时,取插入点负值-1
  • 数组转换成集合——asList

#数组转换成集合虽然不能增加或减少元素,但是可以用集合的思想操作数组,也就是说可以使用集合中的方法

public static void HasList() {int[] arr4 = {11,22,33,44,55};//基本数据类型的数组转换成集合,会将整个数组当作一个对象转换List<int[]> list = Arrays.asList(arr4);System.out.println(list);Integer[] arr5 = {11,22,33,44,55};//将数组转换成集合,数组必须是引用数据类型List<Integer> lsit1 = Arrays.asList(arr5);System.out.println(lsit1);}

Java的Arrays类常用方法#冒泡排序#二分查找法#数组转换集合相关推荐

  1. java小练习题---冒泡排序+二分查找法

    题目: 冒泡排序+二分查找法 代码: package scan; import java.util.Scanner; //import java.util.Scanner; public class ...

  2. Java中Arrays类的常用方法

    Java中Arrays类的常用方法 Arrays类位于 java.util 包中,主要包含了操作数组的各种方法. import java.util.Arrays; Arrays.fill(); //填 ...

  3. java 二分查找_Java数组之Arrays方法

    Java数组之Arrays方法,拉勾IT课小编为大家分析,JAVA数组的一些方法,提升开发水平,增强技术开发水平,不断提升个人的技术能力,在对于java开发领域,很多人都从基础做起. 1. 数组的工具 ...

  4. java for循环和数组--冒泡排序、二分查找法

    //100以内与7相关的数 for(int a=1;a<=100;a++){     if(a%7==0||a%10==7||a/10==7){      System.out.print(a+ ...

  5. Java基础——Arrays类

    每日正能量 如果你要做一件事,不要到处宣言自己的想法,只管安安静静地去做,值不值,时间是最好的证明,自己的人生,得自己负责. Arrays类 JDK中提供了一个专门用于操作数组的工具类,即Arrays ...

  6. java.util 1.8_JDK1.8源码(四)——java.util.Arrays 类

    java.util.Arrays 类是 JDK 提供的一个工具类,用来处理数组的各种方法,而且每个方法基本上都是静态方法,能直接通过类名Arrays调用. 1.asList public static ...

  7. c语言实验报告 折半查找法,C语言数组之冒泡排序+折半查找法(二分查找)

    冒泡排序算法 将相邻的元素进行两两比较,大的向后"冒", 小的向前"赶". 口诀: N个数字来排队,两两比较小靠前 外层循环N-1(控制需要比较的轮数). 内层 ...

  8. java的知识点17——java.util.Arrays类、多维数组

    java.util.Arrays类 Arrays类包含了:排序.查找.填充.打印内容等常见的操作. 打印数组 package cn.dym08; import java.util.Arrays;pub ...

  9. 学习练习 java 二分查找法

    1 package com.hanqi; 2 3 import java.util.*; 4 5 public class Test5 { 6 7 public static void main(St ...

最新文章

  1. 浏览器接收响应数据过大_DOM总结:数据通信(HTTP协议和Ajax)
  2. Ajax updatepanel用法
  3. matlab生成有向网络,matlab ode45和矩阵生成有向网络图
  4. 前目的地罗伯森是谁_距离目的地只剩10公里,开车师傅却在高速公路上睡着了...
  5. Java 习题(面向对象)
  6. 巨额流量费其实可以避免
  7. LeetCode 345. Reverse Vowels of a String
  8. java写文件 自动创建目录吗_Java 自动创建日志目录及文件
  9. 2018年C语言期末考试题及答案,HZNUOJ--2018年秋季学期程序设计基础(C语言)期末考试(补题)...
  10. iPhone5发布,杂谈
  11. 北京二手房价10月微涨 业内:坚持限购就不会大涨
  12. 计算机专业保研面试备考:概率论
  13. Ansible 配置Windows Update
  14. day 84 Vue学习四之过滤器、钩子函数、路由、全家桶等
  15. 旷视科技面试——算法岗
  16. Flink开发利器StreamX
  17. Twebbrowser从内存中加载页面
  18. Beautifulsoup模块
  19. 浮士德---法国:古诺
  20. 怎么为图片、视频设置打开方式

热门文章

  1. 如何按国家标准分幅下载卫星地图
  2. 文章采集伪原创工具-免费批量文章采集伪原创发布工具
  3. 使用代理的服务器,无法使用WebClient。报错:无法解析此远程名称: 'www.***.com'的解决方法
  4. HummerRisk 入门3:开发手册
  5. Word 2013 页码设置棘手问题
  6. hp惠普战66系列开机频繁闪烁如何解决相关的问题?蓝屏问题如何解决?
  7. 为啥是SoA?(一)
  8. 字节前程序员戳破字节福利“谎言”
  9. 一场疫情,看清了马云
  10. Word文件异常退出没保存怎么恢复