Java数据结构与算法——冒泡排序
1.关于排序
排序也称排序算法 (Sort Algorithm),排序是将一 组数据,依指定的顺序进行排列 的过程。
排序的分类:
- 内部排序: 指将需要处理的所有数据都加载 到内部存储器中进行排序。
- 外部排序法:数据量过大,无法全部加载到内 存中,需要借助外部存储进行排序。
2.代码案例
冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。
因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志flag判断元素是否进行过交换。从而减少不必要的比较。
package com.szh.sort;import java.util.Arrays;/****/
public class BubbleSort {private static void bubbleSort(int[] arr) {int temp = 0; //临时变量boolean flag = false; //标记变量,表示是否进行过两个数的交换(用来优化冒泡排序)for (int i = 0; i < arr.length - 1; i++) {for (int j = 0; j < arr.length - 1 - i; j++) {//如果前面的数比后面的数大,则交换if (arr[j] > arr[j + 1]) {flag = true; //有两个数交换过,将标记变量置为truetemp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}if (!flag) { //在一趟排序中,一次交换都没有发生过,则说明数组已经有序,无需再进行后续的排序工作break;} else {flag = false; //重置flag!!!, 进行下次判断}}}public static void main(String[] args) {int[] arr = {3, 9, -1, 10, 20};System.out.println("排序前:");System.out.println(Arrays.toString(arr));//测试冒泡排序bubbleSort(arr);System.out.println("排序后:");System.out.println(Arrays.toString(arr));}
}
3.各种排序算法比较
Java数据结构与算法——冒泡排序相关推荐
- Java 数据结构与算法系列之冒泡排序
一.前言 相信大部分同学都已经学过数据结构与算法这门课了,并且我们可能都会发现一个现象就是我们所学过的数据结构与算法类的书籍基本都是使用 C 语言来写的,好像没见过使用 Java 写的数据结构与算法. ...
- 【笔记】Java数据结构与算法
[笔记]Java数据结构与算法 文章目录 [笔记]Java数据结构与算法 1.八大排序应用场景 2.未完待续-- 1.八大排序应用场景 冒泡排序:优化后的冒泡排序可用于当数据已经基本有序,且数据量较小 ...
- Java数据结构与算法(二)
Java数据结构与算法(二) 第六章 递归 1 递归应用场景 2 递归的概念 3 递归调用机制 4 递归能解决什么样的问题 5 递归需要遵守的重要规则 6 递归-迷宫问题 6.1 迷宫问题 6.2 代 ...
- Java数据结构和算法(第二版)
Java数据结构和算法(第二版) 下载地址 https://pan.baidu.com/s/112D5houIgu0eMs_i5o0Ujw 扫码下面二维码关注公众号回复 100066获取分享码 本书目 ...
- Java数据结构和算法 - 递归
三角数字 Q: 什么是三角数字? A: 据说一群在毕达哥拉斯领导下工作的古希腊的数学家,发现了在数学序列1,3,6,10,15,21,--中有一种奇特的联系.这个数列中的第N项是由第N-1项加N得到的 ...
- 数据结构 - Java -韩顺平 图解Java数据结构和算法
数据结构 Lesson 1 数据结构的知识总结 1. 几个经典的算法面试题 2. 线性结构与非线性结构 2.1 稀疏数组 sparsearray 2.2 队列 2.2.1 顺序队列: 2.2.2 环形 ...
- 一.Java数据结构与算法:如何开始
数据结构和算法是计算机科学的核心概念之一,它们在软件开发中起着至关重要的作用.学习Java数据结构和算法不仅有助于提高编程能力,还能让你在面试和职业发展中脱颖而出.本文将为你介绍数据结构和算法的重要性 ...
- 【Java面试高频问题】Java数据结构和算法基础知识汇总
文章目录 Java数据结构和算法基础知识 一.Java数据结构 1. 线性结构:数组.队列.链表和栈 1.1 数组(Array) 1.2 稀疏数组 1.3 队列(Queue) 1.4 链表(Linke ...
- Java数据结构与算法——树(基本概念,很重要)
声明:码字不易,转载请注明出处,欢迎文章下方讨论交流. 有网友私信我,期待我的下一篇数据结构.非常荣幸文章被认可,也非常感谢你们的监督. 前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督 ...
最新文章
- r-rpm常用命令集
- flask 检测post是否为空_用Flask和Vue制作一个单页应用(五)
- dmp标签_京东dmp人群标签的使用,直接决定了你快车的盈利
- VNC介绍(第一篇)
- p1605迷宫(DFS应该注意的问题)
- 字符串表达式求值 C#实现
- RBF的一维和二维逼近
- 美联储FOMC会议前瞻:预计美联储将维持目前的政策不变
- 再获国际顶级荣誉,平头哥首席科学家谢源荣获2020年度IEEE CS技术成就奖
- [Linux] Ubuntu13.04 搭建OK6410-A开发板的开发环境
- group by 和count 联合使用问题
- php检查某个网站,用php开发一个检测某网站是否在正常运行的小模块
- iPhone清理喇叭灰尘_厉害了!原来可以这样一键清理 iPhone 喇叭灰尘!
- 51单片机3-红外通信
- QT5.12.0 程序在中标麒麟(neokylin)系统问题处理
- FZU 2213 Common Tangents(公切线)
- element el-table 在IE浏览器 表头失效问题
- 几种常用内存管理底层介绍
- 11行Python代码制作聊天机器人
- 什么是期权股权?什么是期权股权原始股?