数组里的算法 2020-07-12 | | | 数组算法:冒泡排序 话不多说,请看代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859package com.array;import java.util.Arrays;/** * @Author: liuchang * @CreateTime: 2020.7.11 * @Description: 郑州工程技术学院-中德学院 *//*冒泡排序: 1.排序原理:数组元素两两比较,交换位置,大元素往后放,那么经过一轮比较后, 最大的元素将出现在最大索引处 */public class ArrayDemo03 { public static void main(String[] args) { int[] array={12,20,42,80,10,30,11,12}; /* 我们先写一段代码来探究本质: 数组里总共有8个数,两者比较,比较次数为7次。所以要循环七次。 什么时候进行换位呢?当array[i]>array[i+1]时进行换位。其它情况不用管。 怎么进行换位的呢?使用一个中间变量进行二者之间的传值。 for (int i = 0; i < array.length - 1; i++) { if (array[i]>array[i+1]){ int t=array[i]; array[i]=array[i+1]; array[i+1]=t; } } //第一个循环得到结果:[12, 20, 42, 10, 30, 11, 12, 80] 第一次比较后,最后一次比较不需要进行(因为第一次比较确定是80最大了),所以再减1,减少一次比较次数 换位代码都不变 for (int i = 0; i < array.length - 1 - 1; i++) { if (array[i]>array[i+1]){ int t=array[i]; array[i]=array[i+1]; array[i+1]=t; } } //第二个循环得到结果:[12, 20, 10, 30, 11, 12, 42, 80] System.out.println(Arrays.toString(array)); */ //由上述代码,可以发现,我们可以再使用一层for循环进行代码简化。 /* 代码解析: 就是多了一层for循环。 */ for (int j = 0; j < array.length - 1; j++) { for (int i = 0; i < array.length - 1 - j; i++) { if (array[i]>array[i+1]){ int t=array[i]; array[i]=array[i+1]; array[i+1]=t; } } } //这里是使用了数组的工具类Arrays类中的toString方法 System.out.println(Arrays.toString(array)); }} 相关文章 点击查看 数组里的算法 数组里的算法 数组里的算法 -------------------本文结束 感谢您的阅读------------------- 坚持原创技术分享,感谢您的支持和鼓励! Donate WeChat Pay Alipay Post author: Student-Chang Post link: https://studentliuchang.gitee.io/%E6%95%B0%E7%BB%84%E9%87%8C%E7%9A%84%E7%AE%97%E6%B3%95%EF%BC%9A%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F/ Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.