博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java数据结构与算法分析——冒泡排序
阅读量:1953 次
发布时间:2019-04-27

本文共 1503 字,大约阅读时间需要 5 分钟。


版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl

原理分析

现存在一个无序数组{1,9,7,5,3},请利用冒泡排序将数组按照从小到大(从大到小)排序。

第一趟:一共五个数,比较了4回,流程如下:

1和9比,9大,不变换位置,所以还是 1,9,7,5,3
9和7比,9大,需要变换位置,9和7对调 1,7,9,5,3
9和5比,9大,需要变换位置,9和5对调 1,7,5,9,3
9和3比,9大,需要变换位置,9和3对调 1,7,5,3,9

第二趟: 1,7,5,3,9 比较了3回,流程如下:

1和7比,7大,不需要变换位置, 所以还是 1,7,5,3,9
7和5比,7大,需要变换位置 ,所以变成 1,5,7,3,9
7和3比,7大,需要变换位置 ,所以变成 1,5,3,7,9

第三趟:1,5,3,7,9 比较了2回,流程如下:

1和5比 ,5大,不需要变换位置, 所以还是 1,5,3,7,9
5和3比, 5大 ,需要变换位置 , 变成 1,3,5,7,9

第四趟:1,3,5,7,9 比较了1回,流程如下:

1和3比 , 3 大 ,不需要变换位置, 所以还是1,3,5,7,9

小结:

  • 1、 数组中5个数,比较了5-1=4趟
  • 2、每一趟比较了几次呢?第几趟+在该趟中比较的回数=数组中元素的个数
  • 3、每一趟比较,比较出一个最大值,放到最后面
  • 4 、每一回的比较中两个数两两进行比较,可能需要对调位置

代码实现

冒泡排序的代码实现如下:

package com.algorithm;/** * 本文作者:谷哥的小弟  * 博客地址:http://blog.csdn.net/lfdfhl */public class BubbleSort {
public static void main(String[] args) {
int[] intArray = {
11, 99, 77, 5, 0, -1}; printArray(intArray); System.out.println(); bubble(intArray); } public static void bubble(int[] intArray) {
for (int i = 0; i < intArray.length - 1; i++) {
for (int j = 0; j < intArray.length - 1 - i; j++) {
if (intArray[j] > intArray[j + 1]) {
swap(intArray, j, j + 1); } } } printArray(intArray); } //打印数组 public static void printArray(int[] intArray) {
for (int i = 0; i < intArray.length; i++) {
System.out.print(intArray[i] + " "); } } //交换数组中的元素 public static void swap(int[] intArray, int i, int j) {
int temp = 0; temp = intArray[i]; intArray[i] = intArray[j]; intArray[j] = temp; }}

运行结果

在这里插入图片描述

你可能感兴趣的文章
利用AirSim在Unreal Engine上获取全景图像
查看>>
神奇的c++等号重载
查看>>
利用uWSGI和Nginx部署Django
查看>>
Linux下修改^M换行符
查看>>
笔记-有关于Vim
查看>>
vnc, vncserver, ssh的locale问题
查看>>
[野路数] Django中使用logging
查看>>
[未修订]ROS学习笔记
查看>>
Eigen学习笔记
查看>>
PyTorch的学习笔记01-基础中的基础
查看>>
onshape 做参考面等虚拟几何的装配和原点定位
查看>>
JAVA学习笔记1 - 类和变量类型
查看>>
JAVA学习笔记2 - 变量类型与修饰符
查看>>
JAVA学习笔记3 - 运算符
查看>>
JAVA学习笔记4 - 循环与分支结构
查看>>
JAVA学习笔记5 - Number类,Math类,Character类,String类,StringBuffer类
查看>>
JAVA学习笔记6 - 数组
查看>>
JAVA学习笔记8 - Stream 和 File I/O
查看>>
JAVA学习笔记9 - 异常
查看>>
JAVA学习笔记10 - 继承
查看>>