Bubblesort冒泡算法
最简单的算法,大家都知道两层for循环,中间加一个过渡用来交换数据
小例子:
package com.neuedu.algorithm;//算法
public class Bubblesort {
//冒泡排序
public static void main(String[] args) {
int a[] = {234,56,3,2345,546,7,3,2345};
//外层循环控制遍历的次数
for(int j=0;j<a.length-1;j++) {
//内层循环控制移位最小值
for(int i=0;i<a.length-1-j;i++) {
if(a[i]>a[i+1]) {
int s=a[i];//先把最大值拿出来
a[i]=a[i+1];//然后把小的数放到前面去
a[i+1]=s;//最后把大的值放到后面
}
}
}
for(int i=0;i<a.length;i++) {
System.out.println(a[i]);
}
}
}
普通到不能再普通的算法,但也有它的优势
外层循环是length-1;内层是length-1-j次,通常自己写是不是两层都是循环length次?
呐,,,,这样可以减少循环次数,,还是有好处的吧
Bubblesort冒泡算法的更多相关文章
- 冒泡算法-bubble
冒泡算法在数据只有几个无序时是最快的算法,但是如果全部无序的话就变成了最慢的算法了,时间复杂度为O(n^2) public class bubbleSort { public static void ...
- js数值排序中冒泡算法的4种简单实现
实现数组排序的算法很多,其中冒泡算法是比较简单的冒泡的基本原理是相邻的两个数进行比较,按照排序的条件进行互换,例如对数值从小到大排序,随着不断的互换,最大的那个值会慢慢冒泡到数组的末端基于这个原理我们 ...
- 前端面试题解密:经典算法之冒泡算法(ES6版)及优化
前言 随着前端的飞速发展,前端业务开发给前端工程师提出了更高的要求,因而算法题也越来越高频次的出现在前端面试中.有很多的小伙伴找胡哥苦诉,在前端实际开发中(除了涉及游戏开发方面),算法使用有很多吗?大 ...
- 冒泡算法及其优化(java)
冒泡算法的规则: 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放待排序序列的起始位置(或末尾位置),直到全部待排序的数据元素排完 动态图: 对应代码 static void swap(i ...
- 1014 C语言文法定义与C程序的推导过程 程序:冒泡算法C程序(语法树)
阅读并理解提供给大家的C语言文法文件. 参考该文件写出一个自己好理解版的现实版的完整版的C语言文法. 给出一段C程序,画出用上述文法产生这段C程序的完整语法树. 程序:冒泡算法C程序 点此文字查看原图 ...
- 冒泡算法C#
冒泡算法C# namespace数组排序 { classProgram { staticvoidMain(string[]args) { inttemp=; ,,,,,,,,}; #region该段与 ...
- Python函数练习:冒泡算法+快速排序(二分法)
冒泡算法: #-*- coding: UTF-8 -*-#冒泡排序 def func(lt):if type(lt).__name__ !='list' and type(lt).__name__ ! ...
- javascript之冒泡算法
今天看了js中数组的方法,其中sort()方法用于排序,就让我想到学C语言的时候有一个冒泡算法,就想用js写一个. <script> var arr=[1,30,20,40,21,31,1 ...
- 冒泡算法(C++模板实现)
冒泡排序 从整体上看,冒泡排序是一种稳定排序,即排序完成后,原本序列中的键值相等的元素相对位置不会发生改变.算法的时间复杂度是O(n2),空间复杂度为O(1),即这是一个"就地算法" ...
随机推荐
- windows 安装python
前言: Windows 中直接使用Python真的是心累 安装vs 2017(最好是最新版的, 因为python依赖于一些vs提供的包) 下载最新的python的安装程序 安装完毕之后, 不像Linu ...
- MongoDB Linux 安装配置 后台运行
介绍安装的文档很多,可以参考这篇: http://www.mkyong.com/mongodb/how-to-install-mongodb-on-mac-os-x/ 安装完后你可能会碰到的2个问题. ...
- maven相关说明,以及使用Testng相关
配置Apache Maven Apache Maven使用本身的配置和建立的项目位于许多地方: MAVEN_OPTS环境变量: 该变量包含用于启动运行Maven的JVM的参数,可用于向Maven提供其 ...
- CentOS 6.2安装nagios
nagios分为监控机和被监控机两类机器 监控主机:gserver150(192.168.111.150) 被监控主机:gserver151(192.168.111.151) 一. 监 ...
- Swift基础学习笔记
1.在学基本语法之前,简单看一下与OC的不同 注释:OC #pragma marks 视图加载完成 Swift //MARK: 视图加载完成 //TOOO:设置背景颜色(Xco ...
- new Date(str)返回的时间结果在移动端比PC端快了8小时
最近开发过程中,后端传过来一个“2018-03-15T17:53:19.6307928”字符串,需要将字符串转换成“2018-03-15 17:53”的格式展示出来.首先我使用了var time=n ...
- 【精华】9张思维导图带你学习Javascript
转自:ChokCoco(http://www.cnblogs.com/coco1s/p/3953653.html) 学习的道路就是要不断的总结归纳,好记性不如烂笔头,so,下面将po出8张javasc ...
- Spring+Hibernateh使用小结
由此我们可以看出,报出错误的地方主要是slf4j的jar包,而故障码中“Failed to load class ’org.slf4j.impl.StaticLoggerBinder‘”的意思则是“加 ...
- LeetCode Merge Two Sorted Lists 归并排序
题意: 将两个有序的链表归并为一个有序的链表. 思路: 设合并后的链表为head,现每次要往head中加入一个元素,该元素要么属于L1,要么属于L2,可想而知,此元素只能是L1或者L2的首个元素, ...
- [Rails学习之路]初识Ruby(二)
继续上次Ruby的学习.接下来就到了Ruby的方法. Ruby的方法与Python仍然很像.使用def定义,可以使用undef取消定义. 在Ruby中,经常可以看见方法后面跟有"?" ...