冒泡排序

  • 原理分析
  • 代码如下:
  • 算法复杂度

原理分析

/**
* 冒泡排序
* 排序:默认是正序,从小到大排序
* 原理: 从下往上排序, 叫做从前往后排序, 如果前面的数比后面的数大,则交换2个数的位置
* 元素个数为; N
* 外层循环: 比较的总趟数 N-1, 每趟数为: i(从0开始)
* 内层循环: 无序区范围大小 N-i-1, 也可以理解为:一趟中比较的次数,注意: 指针指向的数从0开始, 最后一个数据不用比较,
* 代码关键点: 趟, 无序区范围
* 优化: 如果冒泡排序中的一趟排序没有发生交换,则说明列表已经有序,可以直接结束算法
* @param arr
*/

代码如下:

package com.company;import java.util.Arrays;public class Main {public static void main(String[] args) {System.out.println(1);int[] arr = {7, 2, 5, 8, 1, 3, 6, 9, 4};dubbleSort(arr);}/*** 冒泡排序* 原理: 从下往上排序, 叫做从前往后排序, 如果前面的数比后面的数大,则交换2个数的位置* 元素个数为; N* 外层循环: 比较的总趟数 N-1, 每趟数为: i(从0开始)* 内层循环: 无序区范围大小 N-i-1, 也可以理解为:一趟中比较的次数,注意: 指针指向的数从0开始, 最后一个数据不用比较,* 代码关键点: 趟, 无序区范围* 优化: 如果冒泡排序中的一趟排序没有发生交换,则说明列表已经有序,可以直接结束算法* @param arr*/public static void dubbleSort(int[] arr) {for (int i = 0; i < arr.length - 1; i++) {boolean flag = false;for (int j = 0; j < arr.length - i - 1; j++) {if (arr[j] > arr[j + 1]) {int tmp = arr[j];arr[j] = arr[j+1];arr[j+1] = tmp;flag = true;}}System.out.println(Arrays.toString(arr));if (!flag){return;}}}
}

运行结果:

算法复杂度

因为是2层循环,也没有折半,所以是: O(n² )


完成

lowB三人组---冒泡排序原理和实现相关推荐

  1. 排序算法lowb三人组-插入排序

    排序算法lowb三人组-插入排序 def insert_sort(li):for i in range(1, len(li)): # i表示摸到的牌的下标tmp = li[i] # 摸到的牌j = i ...

  2. 算法1-排序LowB三人组

    import random from timewrap import *@cal_time def bubble_sort(li):for i in range(len(li) - 1):# i 表示 ...

  3. 算法-lowb三人组

    ---恢复内容开始--- d定义: pandas是一个强大的Python数据分析的工具包. pandas是基于NumPy构建的. 安装方法: pip install pandas import pan ...

  4. 排序算法之low B三人组

    排序算法之low B三人组 排序low B三人组 列表排序:将无序列表变成有充列表 应用场景:各种榜单,各种表格,给二分法排序使用,给其他算法使用 输入无序列表,输出有序列表(升序或降序) 排序low ...

  5. C#冒泡排序原理讲解及代码块

    C#冒泡排序原理讲解及代码块 一.冒泡排序理论 (1)基本概念由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序.冒泡排序的时间复杂度为O(n*n). (2)逻辑分析依次比 ...

  6. 20155222卢梓杰 实验三 免杀原理与实践

    实验三 免杀原理与实践 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧 实验步骤如下 1.先对实验二中生 ...

  7. bs架构 mysql_基于BS架构OA办公系统的设计(PHP,MySQL)(三人组)(含录像)

    基于BS架构OA办公系统的设计(,MySQL)(三人组)(含录像)(毕业论文13000字,程序代码,MySQL数据库,答辩PPT) 系统模块划分 企业部门管理系统(以管理员部分为核心)从功能上划分为5 ...

  8. socket 编程入门教程(三)TCP原理:5、TCP的三次握手(three-way handshake)

    socket 编程入门教程(三)TCP原理:5.TCP的三次握手(three-way handshake) 前面3个小节介绍了socket机制对TCP协议三次握手的实现,需要强调的是,与协议独立于实现 ...

  9. 20155301实验三 免杀原理与实践

    20155301实验三 免杀原理与实践 实验内容 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧: 2 ...

  10. TCP 三次握手原理,你真的理解吗

    转载自  TCP 三次握手原理,你真的理解吗 最近,阿里中间件小哥哥蛰剑碰到一个问题--client端连接服务器总是抛异常.在反复定位分析.并查阅各种资料文章搞懂后,他发现没有文章把这两个队列以及怎么 ...

最新文章

  1. android 点击网络图片大全,android查看网络图片的实现方法
  2. python装饰器函数-python函数装饰器之带参数的函数和带参数的装饰器用法示例
  3. ubuntu mysql 多端口_ubuntu 16.04下mysql5.7.17开放远程3306端口
  4. python3 线程隔离_Python并发编程之线程中的信息隔离(五)
  5. 【转】Matlab axis用法
  6. 多行并一行显示的两种方式(DB2)
  7. julia与python对比_有人说Julia比Python好,还给出了5个理由
  8. CSS--使用伪选择器制作箭头图标
  9. idea 不打开文件提示错误_解决IDEA误删out目录下的文件导致404无法访问的问题
  10. 清华大学python镜像_使用清华开源镜像安装tensorflow
  11. java 程序更新_如何关闭JAVA更新程序
  12. CentOS7安装JDK,全网最快安装教程
  13. sla的三个服务等级_联络中心的服务水平标准是什么?
  14. 如何在Word2010中设置不一样的稿纸
  15. JavaScript动态操作网页思维导图
  16. ps4绝地求生服务器维护,绝地求生官方更新公告 无停机维护公告
  17. python对文件的写作方法_python读写csv文件 - 作文写作问答 - 归教作文网
  18. 操作教程:大华摄像头通过GB28181协议注册EasyCVR平台的详细配置
  19. UE4内存检测工具使用
  20. 轻松学,Java 中的代理模式及动态代理

热门文章

  1. 欧美游戏业者都挣多少钱
  2. 什么是WiFi探针?
  3. 天津美术学院2021级专升本新生报到前后相关要求
  4. linux shell fflush,強制shell腳本fflush
  5. unity实现简单的地图编辑器,实现跑酷地图编辑器 2d地图编辑器,导出地图json数据,导入地图json数据
  6. logstash grok mysql_logstash grok
  7. 移动端 设计师设计APP UI常用软件总结
  8. 跳马周游c++_C++——跳马问题(广搜)
  9. 2021年10月程序员薪资出炉,你在哪个层级?
  10. authentication method 10 not supported