冒泡排序(java)
冒泡排序是数据结构中很经典的排序算法,我的理解:以从小到大的顺序为例,原数组为arr[4] = {5, 6, 2, 3},从最右面的元素开始与相邻元素两两比较,交换位置(小的放在左边);从代码中也容易看出,排序过程分为内外两次循环,外循环决定排序的轮数,内循环产生本轮元素中的最值放在最左边(产生的最值不参与下一轮的排序);如第一轮排序中,从arr[3] = 3开始,3>2则不用交换位置;再比较2<6,交换位置,数组变为{5, 2, 6, 3};再比较2<5, 交换位置,数组变为{2, 5, 6, 3};这样第一轮排序结束后,最小的元素就到了最左边,如果把左右看做上下是不是像冒泡一样呢?!没错,每一轮排序都以这种冒泡的方式就可以将数组变为我们想要的顺序{2, 3, 5, 6}.
代码示例:
public class BubbleSort {
public static void sort(long[] arr) {
long tmp = 0;
for(int i = 0; i < arr.length-1; i++) { //外循环表示排序的轮数
for(int j = arr.length-1; j > i; j--) { //内循环表示从最后一个元素到第i+1个元素两两比较大小(j>i说明当j = i时跳出循环,即参与此轮排序的元素只有arr[arr.length-1]...arr[i+1])
if(arr[j] < arr[j-1]) {
//从最下面的元素开始往上两两交换
tmp = arr[j];
arr[j] = arr[j-1];
arr[j-1] = tmp;
}
}
}
}
}
冒泡排序(java)的更多相关文章
- 动态演示冒泡排序java
动态演示冒泡排序java //冒泡排序是一种简单的交换排序,基本思路,从数列左边开始扫描元素,在扫描过程中依次对相邻元素进行比较,将较大元素后移. public class NumberSort { ...
- 基本排序算法——冒泡排序java实现
冒泡排序是原理最简单的一种排序算法,具体思想就不多说了,代码如下: eclipse4.3中编译通过 package sort.basic; import java.util.Arrays; publi ...
- 冒泡排序-java
排序-冒泡排序 基本思想:从一端开始,逐个比较相邻的两个元素,发现倒序即交换. 这里按从后往前(从下往上)逐个比较相邻元素. 平均时间:O(n2) 最好情况:O(n) 最坏情况:O(n2)(逆序) 辅 ...
- Java冒泡排序,Java对象冒泡排序
今天呆公司特别无聊,百度了一下Java机试题,看到一个冒泡排序. 粘上我全部的代码: 实体类: package accp.com.internet;/** * 人物类 * @author xuxiao ...
- JAVA冒泡排序/JAVA冒泡排序再找出给定数据中的最大值最小值/JAVA数组排序
//数组中排序 int in[] = {1,6,5,8,9}; Arrays.sort(in); for(int i=0;i<in.length;i++){ Sys ...
- 冒泡排序java
先对冒泡排序做一个简单的解释,然后是代码的实现.解释出资<java的数据结构和算法>,大家可以看看. 排序类: package com.dxx.order; public class Bu ...
- 冒泡排序----java实现
冒泡排序思路:第1次:顺序比较从第0个到第len个(相邻两个)元素并把大的放后面,第一次进行完后,最大 的元素会在最后: ...
- 数据结构算法之冒泡排序——Java语言实现
今天来谈下冒泡排序算法,这次实现由两种形式如下所示: 1.对于长度为N的数据序列,没有加标签限制,针对一开始就是有序的数据序列,仍然需要排序N-1趟来完成排序. 2.对于长度为N的数据序列,加标了签限 ...
- Bubble(冒泡排序)————Java
用Java进行冒泡排序的代码,利用一个flag进行优化算法: import java.util.Scanner; public class Bubble_Sort { private static i ...
- 排序算法之冒泡排序Java实现
排序算法之冒泡排序 舞蹈演示排序: 冒泡排序: http://t.cn/hrf58M 希尔排序:http://t.cn/hrosvb 选择排序:http://t.cn/hros6e 插入排序:ht ...
随机推荐
- Replication-删除发布备注
1.删除replication,先删除replication的作业,再删除对应的订阅,再删除发布: 2.相关脚本:删除监视器里不存在的条目sp_removedistpublisherdbreplica ...
- Vue-cli 记录
出自http://www.cnblogs.com/nutritious/p/6494479.html 先给出能正确安装的步骤: 1.进盘符 2,为啥不用npm,这是国外的东西,有些电脑无法FQ,会导致 ...
- 常见浏览器User-Agent大全
http://blog.csdn.net/tianjinjianzhan/article/details/51702232
- RabbitMQ安装与初始配置
[TOC] 本文只讨论linux下的Rabbitmq安装. Erlang安装 rabbitmq依赖于Erlang,需先安装,推荐安装rabbitmq/erlang-rpm: #clone源码 git ...
- 【JavaScript学习】-JS内置对象1-对象概述
对象(object): JavaScript 中的所有事物都是对象,如:字符串.数值.数组.函数等,每个对象带有属性和 方法.JavaScript 提供多个内建对象,比如 String.Date.Ar ...
- Chapter 1. Introduce
前言 本书全名是<H.264 and MPEG-4 Video Compression, Video Coding For Next-generation Multimedia>,作者为 ...
- 【Android Developers Training】 68. 序言:添加动画
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- JAX-RS REST 服务结果的自动封装
如转发请注明: 原文luyiisme博客 当使用遵循 JAX-RS 标准的框架开发REST 服务时,我们倾向于定义个(含有JAX-RS)注解接口. 服务器端负责实现该接口,而客户端是该接口的代理进行远 ...
- selenium 环境搭建
使用selenium + python来搭建环境的步骤: 1. 下载 python 的版本,常用到的有 2.7 和 3.6 2. 下载 selenium 的版本,通过命令进行下载. pip insta ...
- Android studio出现Error:Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Reques的解决办法
最近更新了一下Android Studio,在导入新项目之后出现Error:Unable to tunnel through proxy. Proxy returns "HTTP/1.1 4 ...