[toc]

冒泡排序

程序代码package com.uplooking.bigdata.datastructure;import java.util.Arrays;public class BubbleSort {    public static void main(String[] args) {        int[] arr = {8, -2, 3, 9, 0, 1, 7, 6};        System.out.println("排序前:" + Arrays.toString(arr));        bubbleSort(arr);        System.out.println("排序后:" + Arrays.toString(arr));    }    /**     * 排序过程分析:     *                                     i前       比较次数(arr.length为8)     *     开始:8, -2, 3, 9, 0, 1, 7, 6     *     * 第1趟结束:-2, 3, 8, 0, 1, 7, 6, 9    0           7     *     * 第2趟结束:-2, 3, 0, 1, 7, 6, 8, 9    1           6     *     * 第3趟结束:-2, 0, 1, 3, 6, 7, 8, 9    2           5     *     * 第4趟结束:-2, 0, 1, 3, 6, 7, 8, 9    3           4     *     * 第5趟结束:-2, 0, 1, 3, 6, 7, 8, 9    4           3     *     * 第6趟结束:-2, 0, 1, 3, 6, 7, 8, 9    5           2     *     * 第7趟结束:-2, 0, 1, 3, 6, 7, 8, 9    6           1     *     * 结论:需要比较的趟数为 arr.length - 1     *      每一趟需要比较   arr.length - 1 - i 次     *     * 由于冒泡排序为相邻两者相互比较对调,并不会更改其原本排序的顺序,所以是稳定排序法     */    public static void bubbleSort(int[] arr) {        for(int i = 0; i  arr[j + 1]) {                    swap(arr, j, j + 1);                }            }        }    }    public static void swap(int[] arr, int i, int j) {        arr[i] = arr[i] ^ arr[j];        arr[j] = arr[i] ^ arr[j];        arr[i] = arr[i] ^ arr[j];    }}

测试排序前:[8, -2, 3, 9, 0, 1, 7, 6]排序后:[-2, 0, 1, 3, 6, 7, 8, 9]

时间复杂度分析1.可以看到,将比较次数相加起来(等差数列),其时间复杂度为O(n^2)2.由于冒泡排序为相邻两者相互比较对调,并不会更改其原本排序的顺序,所以是稳定排序法

java冒泡测试代码_数据结构与算法—冒泡排序(Java实现)相关推荐

  1. 冒泡排序java代码_数据结构与算法—冒泡排序(Java实现)

    [toc] 冒泡排序 程序代码 package com.uplooking.bigdata.datastructure; import java.util.Arrays; public class B ...

  2. java环形链表_数据结构和算法(四)Java实现环形链表

    1. 数据结构和算法(四)Java实现环形链表 1.1 约瑟夫问题 约瑟夫问题:公元66年,约瑟夫不情愿地参与领导了犹太同胞反抗罗马统治的起义,后来起义失败,他和一些宁死不降的起义者被困于一个山洞之中 ...

  3. c++冒泡排序代码_数据结构和算法必知必会的50个代码实现

    今天在GitHub上发现了个非常不错的项目,目前star 4700+,项目主要讲数据结构和算法,有多种语言 50个代码实现. 实现语言有c++,c#,go,java,javascript,object ...

  4. java二叉排序树_数据结构与算法—二叉排序树(java)

    前言 前面介绍学习的大多是线性表相关的内容,把指针搞懂后其实也没有什么难度.规则相对是简单的. 再数据结构中树.图才是数据结构标志性产物,(线性表大多都现成api可以使用),因为树的难度相比线性表大一 ...

  5. 约瑟夫环 java代码_约瑟夫环算法的Java实现代码

    相信大家都知道这是一个的算法问题,约瑟夫环的c语言实现是利用了指针链表的形式,java实现呢,我的这个是用了内部类. 算法描述:n个人围成一圈,每人有一个各不相同的编号,选择一个人作为起点,然后顺时针 ...

  6. java象棋人机代码_中国象棋人机对弈Java版源码

    [实例简介] 中国象棋人机对弈Java版源码,包含人工智能实现(含多个难度级别,采用α-β迭代搜索算法) [实例截图] [核心代码] 中国象棋人机对弈Java版源码 ├── boards │   ├─ ...

  7. java冒泡测试代码,冒泡排序(java可直接跑,算法思想等小儿科不多说直接上代码)...

    import java.util.Arrays; /** *冒泡排序:时间复杂度O(N^2),空间复杂度O(1),稳定的排序 * 每趟确定一个元素的位置,所以需要arr.length趟排序, */ p ...

  8. bm25算法Java代码_搜索引擎相关度算法 -BM25 JAVA实现

    bm25 是一种用来评价搜索词和文档之间相关性的算法,它是一种基于概率检索模型提出的算法. 它的出现主要是解决TF-IDF算法中 TF的影响可无限增大的不足,本质上 BM25是基于TF-IDF并做了改 ...

  9. java冒泡法优化_数据结构java版之冒泡排序及优化

    冒泡排序的时间用大O表示法是O(N^2). 传统的冒泡排序: /** * @param total 要排序的数组长度 */ public void sort(int total){ int num[] ...

最新文章

  1. 2019江行智能 后端开发工程师Go 面试题
  2. [Swift]LeetCode781. 森林中的兔子 | Rabbits in Forest
  3. [运维]---linux机器一般监控用到的概念记录
  4. CentOS 5.8 Zimbra邮件系统安装与配置
  5. Linux性能分析工具汇总
  6. chromium的部署工具depot_tools和gclient
  7. redis 学习笔记(6)-cluster集群搭建
  8. Outlier Detection with Isolation Forest(孤立森林异常检测)
  9. android 支持swf格式,安卓手机如何播放swf文件
  10. 2021年湖南长沙市优势产业发展分析-文化产业、工程机械产业、旅游产业[图]
  11. [C#]文件中转站程序及源码
  12. sql根据身份证号获取年龄和性别(Oracle+hive)
  13. Slick.AI | 人工智能在智慧环保应用案例
  14. 大学生静态HTML网页源码 我的校园网页设计成品 学校班级网页制作模板 web课程设计 dreamweaver网页作业
  15. vue 批量下载通用方法
  16. C语言:从键盘输入一个整数,分别输出它的个位数、十位数、百位数.....
  17. 百度飞桨,让AI落地有解!
  18. 主线程和子线程下的事务不回滚【spring】
  19. free pascal
  20. 计算机应届毕业生必须要培训吗?

热门文章

  1. 10个帮你减压放松的网站
  2. 用 java 生成 TexturePacker 的工程文件
  3. Objective-C 非主流代码技巧
  4. Safari浏览器打不开该网址,因为网址无效(解决办法)
  5. keil 增加 芯片包_为什么我们需要开源的系统芯片?
  6. 【自然语言处理】主题建模评估:连贯性分数(Coherence Score)
  7. python内容审核_我们看下Python黄图批量鉴别审核(多线程版)!学习学习
  8. 安装ubuntu出现花屏_在Ubuntu 18.04系统中挂起,再唤醒就出现花屏的解决办法
  9. 社保挂靠在人事外包公司名下可以吗
  10. 优惠券叠加规则、优惠分摊介绍