【排序算法】冒泡排序原理及Java实现
1、基本思想
冒泡排序顾名思义就是整个过程像气泡一样往上升,单向冒泡排序的基本思想是(假设由小到大排序):对于给定n个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换位置,进行一轮比较和换位后,n个记录的最大记录将位于第n位,然后对前(n-1)个记录进行第二轮比较;重复该过程,直到记录剩下一个为止。
2、复杂度分析
当最好的情况,也就是要排序的序列本身就是有序的,需要进行(n-1)次比较,没有数据交换,时间复杂度为O(n).
当最坏的情况,即待排序的表是逆序的情况,此时需要比较次数为:1+2+3+…+(n-1)=n(n-1)/2 次,并作等数量级的记录移动,因此总的时间复杂度为。
3、排序过程如下
以数组{49,38,65,97,76,13,27,49}为例,
4、Java实现如下
public class BubbleSort {public static void bubbleSort(int[] a) {int temp;for (int i = 0; i < a.length - 1; ++i) {for (int j = a.length - 1; j > i; --j) {if (a[j] < a[j - 1]) {temp = a[j];a[j] = a[j - 1];a[j - 1] = temp;}}}}public static void main(String[] args) {int a[] = { 49,38,65,97,76,13,27,49};bubbleSort(a);System.out.println(Arrays.toString(a));}}
【排序算法】冒泡排序原理及Java实现相关推荐
- java实现apriori算法_七大经典、常用排序算法的原理、Java 实现以及算法分析
0. 前言 大家好,我是多选参数的程序员,一个正再 neng 操作系统.学数据结构和算法以及 Java 的硬核菜鸡.数据结构和算法是我准备新开的坑,主要是因为自己再这块确实很弱,需要大补(残废了一般) ...
- 排序算法——冒泡排序原理动图详解及实现
主要涉及的是内部排序 交换排序 => 冒泡排序 快速排序 选择排序 直接选择排序 堆排序 插入排序 直接插入排序 希尔排序 归并排序 冒泡排序 1. 简介 冒泡排 ...
- 12种排序算法:原理、图解、动画视频演示、代码以及笔试面试题目中的应用
0.前言 从这一部分开始直接切入我们计算机互联网笔试面试中的重头戏算法了,初始的想法是找一条主线,比如数据结构或者解题思路方法,将博主见过做过整理过的算法题逐个分析一遍(博主当年自己学算法就是用这种比 ...
- 经典排序算法 - 冒泡排序Bubble sort
经典排序算法 - 冒泡排序Bubble sort 其原理是比较接近的数字22,按照从小到交换大或降序排列, 这样一趟过去后,最大或最小的数字被交换到了最后一位, 然后再从头開始进行两两比較交换,直到倒 ...
- java实现apriori算法_各种排序算法的分析及java实现(一)
阅读本文约需要7分钟 大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了下用Navicat for Mysql导入.sql文件的 ...
- dv算法java实现_各种排序算法的分析及java实现(二)
更多精彩,请点击上方蓝字关注我们! 上次跟大家分享了下各种排序算法的分析及java实现(一)的相关知识,今天跟大家分享各种排序算法的分析及java实现(二)的知识.昨天我们讲到了选择排序,今天我们继续 ...
- 排序算法——冒泡排序(Bubble Sort)
排序算法--冒泡排序(Bubble Sort) 算法简介(Introduction) Bubble sort is to compare adjacent elements of the list a ...
- 十大经典排序算法-冒泡排序算法详解
十大经典排序算法 十大经典排序算法-冒泡排序算法详解 十大经典排序算法-选择排序算法详解 十大经典排序算法-插入排序算法详解 十大经典排序算法-希尔排序算法详解 十大经典排序算法-快速排序算法详解 十 ...
- C语言基础排序算法-冒泡排序
C语言基础排序算法-冒泡排序 什么是冒泡排序? 顾名思义,这种排序方法就像水中的气泡一样,从底逐渐往上冒,一次前进一步.我们来看一个例子,看看到底是怎么冒泡的.假设有一个数组3,2,5,4,1,我们希 ...
- 11 种加密 哈希算法的原理及其 Java 实现
11 种加密 & 哈希算法的原理及其 Java 实现 一.目的 二.运行环境 三.基本原理及步骤 (I)各种加密算法的原理: ① DES 数据加密标准(Data Encryption Stan ...
最新文章
- 基于多篇经典论文综述Attention模型方法(附源码)
- 现代 JavaScript 函数库 usuallyjs 的安装和使用
- 教你 7 招,迅速提高服务器并发能力!
- samba服务器配置及使用
- 黑马程序员顺义校区php_黑马程序员:从PHP零基础到月薪11K为何送锦旗给班主任?...
- shell中的条件判断和比较
- mysql ==null_mysql = null 问题
- Redis笔记4-持久化方案
- 有了 Service Mesh,还需要 API 网关吗?
- 谷歌翻译器-谷歌翻译器软件批量自动翻译
- pycharm的python解释器选择_pycharm中配置python解释器
- javascript小说阅读器分页算法的实现
- 计算机科技英语论文,计算机科技英语论文大纲模板 计算机科技英语论文提纲怎么写...
- 空城过客XP系统快捷方式去除箭头方法
- STM32名字含义以及其与ARM公司的关系
- 计算机音乐怎么把音乐放u盘,怎么把音乐拷贝到u盘
- python代码画樱花-python画樱花树代码 具体代码介绍
- 如何用Deep Learning为股票定价
- 手机如何从网页完美的跳转到应用程序
- java 乘法 位移_Java 使用位移运算实现乘法