1.0 冒泡排序原理

冒泡排序就是:轻的上浮,沉的下降。小的往前排,大的往后走。
原理:若一个N个元素的数组,两个相邻位置比较,如果前面的元素比后面的元素大就换位置。
每一次比较,都是相对最沉的到位。比较N-1次,每一次,上次一次沉到最下面放好的不用再比较,直到所有的到位为止。

2.0 冒泡排序代码实现
package edp.com.learn1;public class Demo {public static void main(String[] args) {int[] arr = { 24, 68, 84, 55, 15 };bubbleSort(arr);}public static void bubbleSort(int[] arr) {for (int i = 0; i < arr.length - 1; i++) {//外循环, N个数,只要比较N-1次就够了,最后一个数不需要比较。for (int j = 0; j < arr.length-1-i; j++) {//-1为了防止索引越界//内循环,if (arr[j]>arr[j+1]) {int temp=arr[j];arr[j]=arr[j+1];arr[j+1] = temp;}}print(arr);}}/*** 打印数组的方法*/public static void print(int[] arr) {for (int i = 0; i < arr.length; i++) {System.out.print(arr[i]+" ");}System.out.println();}
}

执行结果:

其中结果就是每一次排序的展示,可见1.0中描述的规律。对于新手小白想更轻松的学好Java提升,Java架构,web开发、大数据,数据分析,人工智能等技术,这里给大家分享系统教学资源,扩列下我尉(同英):CGMX9880 【教程/工具/方法/解疑】

3.0 选择排序的原理

选择排序:用一个索引位置上的元素,依次与其他索引位置上的元素比较。晓得在前面,大的在后面。
每一次排序的结果,都是最小值到相对最前面的位置。比较N-1次,每一次,上次一次浮到最前面放好的不用再比较,直到所有的到位为止。

4.0 选择排序的代码实现

代码示范:

package edp.com.learn1;public class Demo {public static void main(String[] args) {int[] arr = { 24, 68, 84, 55, 15 };System.out.print("初始数组为:");print(arr);System.out.println("冒泡排序:");bubbleSort(arr);System.out.println("选择排序:");selectSort(arr);}public static void bubbleSort(int[] arr) {for (int i = 0; i < arr.length - 1; i++) {// 外循环, N个数,只要比较N-1次就够了,最后一个数不需要比较。for (int j = 0; j < arr.length - 1 - i; j++) {// -1为了防止索引越界// 内循环,if (arr[j] > arr[j + 1]) {swap(arr, j, j + 1);}}print(arr);}}/**** 选择排序**/public static void selectSort(int[] arr) {for (int i = 0; i < arr.length - 1; i++) {// 外循环, N个数,只要比较N-1次就够了,最后一次不需要比较。for (int j = i + 1; j < arr.length; j++) {// 内循环,if (arr[i] > arr[j]) {swap(arr, i, j);}}print(arr);}}/**** 打印数组的方法*/public static void print(int[] arr) {for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}System.out.println();}/**** 换位操作方法 此方法只针对本类使用,不准备其他类使用,定义为私有**/private static void swap(int[] arr, int i, int j) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}
}

执行结果为:

5.0 二分查找的原理

二分查找的前提:数组元素有序。不停地折半查找直到找到该值。
比如 11 22 33 44 55 66 77 ,需要查找到22,那么二分查找,先找44,在找22,找到,返回索引。对于新手小白想更轻松的学好Java提升,Java架构,web开发、大数据,数据分析,人工智能等技术,这里给大家分享系统教学资源,扩列下我尉(同英):CGMX9880 【教程/工具/方法/解疑】
画图演示如下:

6.0 二分查找的代码实现

代码演示如下:

package edp.com.learn1;public class Demo {public static void main(String[] args) {int[] arr = { 11, 22, 33, 44, 55, 66, 77 };System.out.println(getIndex(arr, 22));System.out.println(getIndex(arr, 66));System.out.println(getIndex(arr, 88));}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) {          //当中间值小于要查找的值。min = mid + 1;               //最小的索引改变。} else if (arr[mid] > value) {   //当中间值大于要找的值。max = mid - 1;               //最大的索引改变。}mid = (min + max) / 2;           //无论最大还是最小改变中间索引都会随之改变。if (min>max) {                   //如果最小索引大于最大索引。没有查找的可能性。return -1;                   //返回-1,表示查找失败。}}return mid;}
}

执行结果如下:

END

【Java常识】7.0 数组实现冒泡排序、选择排序和二分查找相关推荐

  1. 第三次学JAVA再学不好就吃翔(part59)--冒泡排序选择排序以及二分查找

    学习笔记,仅供参考 文章目录 数组高级冒泡排序 数组高级选择排序 二分查找法 数组高级冒泡排序 冒泡排序原理:设数组中有n个元素,从第一个元素开始,对相邻元素进行两两比较,两个元素中大的往后放,第一次 ...

  2. 挑战程序设计竞赛部分题目选择排序、二分查找找出下标、深度优先算法、求三角形max周长、蚂蚁算法、操作excel

    首先提供帮助类 可能这个类还需要更新 .求最大值.求最小值.选择排序.二分查找找出下标.二分查找排好序列里面是否有那个值 public class Util {//求最大值public static ...

  3. Java 知识点整理-7.StringBuffer类+冒泡排序+选择排序+二分法+Arrays类+基本数据类型的包装类

    1.StringBuffer类概述:线程安全的可变字符序列,一个类似于String的字符串缓冲区,但不能修改(不能像String那样用加号与其他类型数据连接),但通过某些方法调用可以改变该序列的长度和 ...

  4. 【02】Java进阶:09-冒泡排序、选择排序、二分查找、异常、异常的产生和处理、自定义异常、多线程

    day09[排序算法.异常.多线程基础] 今日内容 冒泡排序 选择排序 二分查找 异常处理 多线程基础 教学目标 能够理解冒泡排序的执行原理 能够理解选择排序的执行原理 能够理解二分查找的执行原理 能 ...

  5. 【数组】—冒泡排序选择排序---【巷子】

    /* 什么是冒泡排序:从头到尾比较相邻的两个数的大小,如果符合条件则进行比较 [注]:从小到大进行排序 假设有一个数组 var arr = [9,8,7,6,5,4]; 我们想要进行这个数组进行排序那 ...

  6. 冒泡排序、选择排序、二分查找排序

    package day04.d1.shuzu; import java.util.Arrays; /** * 数组算法测试 * 冒泡排序 * 快速选择排序 * ... * @author Admini ...

  7. Java冒泡,快速,插入,选择排序^_^+二分算法查找

    这段时间在学Java,期间学到了一些排序和查找方法.特此写来和大家交流,也方便自己的日后查看与复习. 1.下边是Java的主类: public class Get {public static voi ...

  8. 使用选择排序和二分查找在数组中查找数据

    <Java实用教程(第5版)微课版> ISBN 978-7-302-46425-9 p29 例子5 能判断用户输入的一个整数是否在已知的数组中.程序效果如下图: 输入整数,程序判断该整数是 ...

  9. c语言数组项目按身高排序,过三关 Java冒泡排序选择排序插入排序小练习

    材料:猴子排序,按照身高来从小到大来排序. 第一关: 老猴子带领小猴子队伍按大小逐一比较,交换,开始高矮排列队伍.(冒泡排序) 第二关: 太慢了,给第一关增加难度,进行选择排序 第三关: 最后,尝试选 ...

最新文章

  1. solidworks模板_SolidWorks文件属性分类和创建方法,图纸自动属性的基础
  2. ArcGIS使用Python脚本工具
  3. jq执行2次同样的方法怎么让第一次执行的不触发_他们说,这段代码你能看得懂她的开始,却猜不中她的结尾。...
  4. iOS之深入解析AppDelegate重构
  5. blog被封了文章全被删除了,郁闷
  6. (转)Kafka 消费者 Java 实现
  7. google浏览器 隐藏功能开启
  8. axios中出现两次请求,OPTIONS请求和GET请求
  9. 如何使用Native Messaging API 打开window程序
  10. 【BZOJ1044】【tyvj3511】【codevs1870】木棍分割,二分答案+滚动数组+前缀和DP
  11. Android开发环境搭建之Eclipse/AndroidStudio
  12. 交流:Ghost版系统安装简单分析
  13. Makefile变量
  14. ATAC-seq原理及现有技术的比较
  15. 漫游Kafka实战篇clientAPI
  16. PADS logic 和PADS layout 连接
  17. 使用JS完成一个简单的计算器功能
  18. 使用cmd命令 关机
  19. 2021年最完善的谷歌SEO关键词调研技巧
  20. 微型计算机噪声要求国标,中国噪声标准(GB noise standards)

热门文章

  1. 都优秀!两位硕士都发一作Nature,之后选择却截然不同!
  2. 正面刚CNN,Transformer居然连犯错都像人类
  3. 引用次数在 15000 次以上的都是什么神仙论文?
  4. 大道至简:算法工程师炼丹Trick手册
  5. 有哪些 AI 行业圈内人才能看懂的笑话?
  6. 6位图灵奖获得者、10多位院士在线“教学”,这套关于“人工智能下一个十年”的课程免费提供给你...
  7. 2020应届生「求职图鉴」,扎心了!
  8. 对于sync.Mutex使用注意事项
  9. 集成学习之Boosting
  10. 将来以静态网页形式展示漏洞影响产品信息