完整的冒泡排序实现以及原理
来源:互联网 发布:手机直播美颜软件 编辑:程序博客网 时间:2024/05/21 09:54
原理图:
实现代码:
package com.zg.sort;/** * 冒泡排序 * 比较次数的公式: N*(N-1)/2 * 原理:相邻元素两两比较,值较大者往后放,第一次比较完毕,最大值出现在了最大索引处。 */public class BubbleSort {public static void main(String[] args) {//定义一个数组int [] num={24,69,80,57,13};System.out.println("冒泡排序前:");for (int i : num) {System.out.print(i+" ");}//第一次比较//num.length-1是为了防止数组越界 num.length-1-0是减少比较的次数for (int i = 0; i < num.length-1-0; i++) {if(num[i]>num[i+1]){int temp=num[i];num[i]=num[i+1];num[i+1]=temp;}}System.out.println("\n第一次比较后:");for (int i : num) {System.out.print(i+" ");}//第二次比较for (int i = 0; i < num.length-1-1; i++) {if(num[i]>num[i+1]){int temp=num[i];num[i]=num[i+1];num[i+1]=temp;}}System.out.println("\n第二次比较后:");for (int i : num) {System.out.print(i+" ");}//第三次比较for (int i = 0; i < num.length-1-2; i++) {if(num[i]>num[i+1]){int temp=num[i];num[i]=num[i+1];num[i+1]=temp;}}System.out.println("\n第三次比较后:");for (int i : num) {System.out.print(i+" ");}//第四次比较for (int i = 0; i < num.length-1-3; i++) {if(num[i]>num[i+1]){int temp=num[i];num[i]=num[i+1];num[i+1]=temp;}}System.out.println("\n第四次比较后:");for (int i : num) {System.out.print(i+" ");}//根据上面代码的特点进行改进for (int j = 0; j< 4; j++) {for (int i = 0; i < num.length-1-j; i++) {if(num[i]>num[i+1]){int temp=num[i];num[i]=num[i+1];num[i+1]=temp;}}}System.out.println("\n代码改进后:");for (int i : num) {System.out.print(i+" ");}//上面是知道数组的长度,所以可以直接写死,再修改灵活一点的做法for (int j = 0; j< num.length-1; j++) {for (int i = 0; i < num.length-1-j; i++) {if(num[i]>num[i+1]){int temp=num[i];num[i]=num[i+1];num[i+1]=temp;}}}System.out.println("\n终版冒泡后:");for (int i : num) {System.out.print(i+" ");}}}
结果:
0 0
- 完整的冒泡排序实现以及原理
- 拓扑排序算法原理以及完整的C代码实现
- 冒泡排序的原理与实现
- 冒泡排序算法的原理与实现
- 冒泡排序原理以及算法
- 冒泡排序原理以及算法
- 冒泡排序原理以及算法
- 排序算法一:冒泡排序,插入排序以及选择排序原理与MATLAB实现
- 冒泡排序的原理
- 冒泡排序的原理
- 排序算法之冒泡排序的思想以及Java实现
- 冒泡排序原理及实现
- 冒泡排序原理及实现
- 有关qsort的应用以及冒泡排序的实现
- Java实现冒泡排序以及优化冒泡排序的一些小技巧
- 汉诺塔的C语言实现以及冒泡排序
- 冒泡排序的Java实现、性能分析以及适用场景
- [java]冒泡排序的常规、改进以及递归实现
- C/C++高质量编程之函数设计
- iOS —label自动换行
- Windows下安装Jenkins
- Android 问题1
- JMeter基础之—录制脚本
- 完整的冒泡排序实现以及原理
- TRUNCATE TABLE 与 DELETE 区别
- List<Map<String,Object>几种遍历的方法
- kubernetes(2):Centos7 安装 kubernetes 1.5 版本
- CentOS 最小化安装系统安装图形界面
- 383. Ransom Note
- 第十三单元总结
- Android关于ListView滑动相关
- Linux下3个特殊的进程