java冒泡测试代码_数据结构与算法—冒泡排序(Java实现)
[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实现)相关推荐
- 冒泡排序java代码_数据结构与算法—冒泡排序(Java实现)
[toc] 冒泡排序 程序代码 package com.uplooking.bigdata.datastructure; import java.util.Arrays; public class B ...
- java环形链表_数据结构和算法(四)Java实现环形链表
1. 数据结构和算法(四)Java实现环形链表 1.1 约瑟夫问题 约瑟夫问题:公元66年,约瑟夫不情愿地参与领导了犹太同胞反抗罗马统治的起义,后来起义失败,他和一些宁死不降的起义者被困于一个山洞之中 ...
- c++冒泡排序代码_数据结构和算法必知必会的50个代码实现
今天在GitHub上发现了个非常不错的项目,目前star 4700+,项目主要讲数据结构和算法,有多种语言 50个代码实现. 实现语言有c++,c#,go,java,javascript,object ...
- java二叉排序树_数据结构与算法—二叉排序树(java)
前言 前面介绍学习的大多是线性表相关的内容,把指针搞懂后其实也没有什么难度.规则相对是简单的. 再数据结构中树.图才是数据结构标志性产物,(线性表大多都现成api可以使用),因为树的难度相比线性表大一 ...
- 约瑟夫环 java代码_约瑟夫环算法的Java实现代码
相信大家都知道这是一个的算法问题,约瑟夫环的c语言实现是利用了指针链表的形式,java实现呢,我的这个是用了内部类. 算法描述:n个人围成一圈,每人有一个各不相同的编号,选择一个人作为起点,然后顺时针 ...
- java象棋人机代码_中国象棋人机对弈Java版源码
[实例简介] 中国象棋人机对弈Java版源码,包含人工智能实现(含多个难度级别,采用α-β迭代搜索算法) [实例截图] [核心代码] 中国象棋人机对弈Java版源码 ├── boards │ ├─ ...
- java冒泡测试代码,冒泡排序(java可直接跑,算法思想等小儿科不多说直接上代码)...
import java.util.Arrays; /** *冒泡排序:时间复杂度O(N^2),空间复杂度O(1),稳定的排序 * 每趟确定一个元素的位置,所以需要arr.length趟排序, */ p ...
- bm25算法Java代码_搜索引擎相关度算法 -BM25 JAVA实现
bm25 是一种用来评价搜索词和文档之间相关性的算法,它是一种基于概率检索模型提出的算法. 它的出现主要是解决TF-IDF算法中 TF的影响可无限增大的不足,本质上 BM25是基于TF-IDF并做了改 ...
- java冒泡法优化_数据结构java版之冒泡排序及优化
冒泡排序的时间用大O表示法是O(N^2). 传统的冒泡排序: /** * @param total 要排序的数组长度 */ public void sort(int total){ int num[] ...
最新文章
- 2019江行智能 后端开发工程师Go 面试题
- [Swift]LeetCode781. 森林中的兔子 | Rabbits in Forest
- [运维]---linux机器一般监控用到的概念记录
- CentOS 5.8 Zimbra邮件系统安装与配置
- Linux性能分析工具汇总
- chromium的部署工具depot_tools和gclient
- redis 学习笔记(6)-cluster集群搭建
- Outlier Detection with Isolation Forest(孤立森林异常检测)
- android 支持swf格式,安卓手机如何播放swf文件
- 2021年湖南长沙市优势产业发展分析-文化产业、工程机械产业、旅游产业[图]
- [C#]文件中转站程序及源码
- sql根据身份证号获取年龄和性别(Oracle+hive)
- Slick.AI | 人工智能在智慧环保应用案例
- 大学生静态HTML网页源码 我的校园网页设计成品 学校班级网页制作模板 web课程设计 dreamweaver网页作业
- vue 批量下载通用方法
- C语言:从键盘输入一个整数,分别输出它的个位数、十位数、百位数.....
- 百度飞桨,让AI落地有解!
- 主线程和子线程下的事务不回滚【spring】
- free pascal
- 计算机应届毕业生必须要培训吗?
热门文章
- 10个帮你减压放松的网站
- 用 java 生成 TexturePacker 的工程文件
- Objective-C 非主流代码技巧
- Safari浏览器打不开该网址,因为网址无效(解决办法)
- keil 增加 芯片包_为什么我们需要开源的系统芯片?
- 【自然语言处理】主题建模评估:连贯性分数(Coherence Score)
- python内容审核_我们看下Python黄图批量鉴别审核(多线程版)!学习学习
- 安装ubuntu出现花屏_在Ubuntu 18.04系统中挂起,再唤醒就出现花屏的解决办法
- 社保挂靠在人事外包公司名下可以吗
- 优惠券叠加规则、优惠分摊介绍