冒泡,简单选择,直接插入排序(Java版)
冒泡。简单选择,直接插入这三种排序都是简单排序。
工具类
package Utils;
import java.util.Arrays;
public class SortUtils {
public static void swap(int[] a,int i,int j){
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
public static void printString(int[] a){
System.out.println(Arrays.toString(a));
}
}
冒泡排序
package BubbleSort;
import java.util.Arrays;
import Utils.SortUtils;
public class Demo02 {
public static void bubbleSort(int[] a){
int len = a.length;
boolean flag = true;
for(int i=0; i<len-1 && flag; i++){
flag = false;//如果无须交换
for(int j=0; j< len-1-i; j++)
{
if(a[j+1]<a[j]){
flag = true;//交换了
SortUtils.swap(a,j+1,j);
}
}
}
}
public static void main(String[] args) {
int[] a = {2,3,5,4,1,6,9,8,7};
bubbleSort(a);
SortUtils.printString(a);
}
}
简单选择排序
package SimpleSort;
import java.util.Arrays;
import Utils.SortUtils;
public class Demo {
public static void simpleSort(int[] arr){
int min;
for (int i = 0; i < arr.length; i++) {
min = i;//如果第一个数据为最小的数据
for (int j = i+1; j < arr.length; j++) {
if(arr[min]>arr[j]){
min = j;
}
}
if(i!=min){
SortUtils.swap(arr, min, i);
}
}
}
public static void main(String[] args) {
int[] a = {2,3,5,4,1,6,9,8,7};
simpleSort(a);
SortUtils.printString(a);
}
}
直接插入排序
package InsertSort;
import Utils.SortUtils;
public class Demo {
public static void insertSort(int[] a){
int temp,j;
for (int i = 0; i < a.length-1; i++) {
if(a[i]>a[i+1]){//后一个数据小于前一个数据
temp = a[i+1];//放入缓存区
for (j = i; j>=0&&a[j]>temp; j--) {
a[j+1] = a[j];//往后移动
}
//由于前面减一之后做的推断,所以这里加一
a[j+1] = temp;
}
}
}
public static void main(String[] args) {
int[] a = {2,3,5,4,1,6,9,8,7};
insertSort(a);
SortUtils.printString(a);
}
}
比較三种排序
冒泡,简单选择,直接插入排序(Java版)的更多相关文章
- Python学习之---冒泡,选择,插入排序
Python学习之---冒泡,选择,插入排序 最近学习了python基础,写一下3大排序练练手: 1 ''' 2 Created on 2013-8-23 3 4 @author: codegeek ...
- Java数据结构和算法(三)——冒泡、选择、插入排序算法
上一篇博客我们实现的数组结构是无序的,也就是纯粹按照插入顺序进行排列,那么如何进行元素排序,本篇博客我们介绍几种简单的排序算法. 1.冒泡排序 这个名词的由来很好理解,一般河水中的冒泡,水底刚冒出来的 ...
- 常见排序算法总结:插入排序,希尔排序,冒泡排序,快速排序,简单选择排序以及java实现
今天来总结一下常用的内部排序算法.内部排序算法们需要掌握的知识点大概有:算法的原理,算法的编码实现,算法的时空复杂度的计算和记忆,何时出现最差时间复杂度,以及是否稳定,何时不稳定. 首先来总结下常用内 ...
- SWFUpload简单使用样例 Java版(JSP)
SWFUpload官方的样例都是PHP的,在这里提供一个Java版的最简单的使用样例,使用JSP页面完毕全部操作. 实现上传,分为三步: 1.JavaScript设置SWFUpload部分(与官方样例 ...
- 简单选择排序(Java)
简单选择排序: 每一趟在整个记录中找到最小的那个作为有序序列的第i个记录. class SelectSort{ public void p(int[] a){ for(int i=0;i<a.l ...
- 简单选择排序(js版)
简单选择排序 基本思想:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录交换.(废话不多说,先看代码). function SelectSort(arr){ var ...
- 简单选择排序实现(Java)
简单选择排序实现 简单选择排序就是通过n-i次关键字之间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i (1 ≤ i ≤ n)个记录交换. 代码实现: public class Selec ...
- Java数据结构和算法(三)--三大排序--冒泡、选择、插入排序
三大排序在我们刚开始学习编程的时候就接触过,也是刚开始工作笔试会遇到的,后续也会学习希尔.快速排序,这里顺便复习一下 冒泡排序: 步骤: 1.从首位开始,比较首位和右边的索引 2.如果当前位置比右边的 ...
- (三)Java数据结构和算法——冒泡、选择、插入排序算法
一.冒泡排序 冒泡算法的运作规律如下: ①.比较相邻的元素.如果第一个比第二个大,就交换他们两个. ②.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.这步做完后,最后的元素会是最大的数( ...
- 排序算法系列:选择排序算法JAVA版(靠谱、清晰、真实、可用、不罗嗦版)
在网上搜索算法的博客,发现一个比较悲剧的现象非常普遍: 原理讲不清,混乱 啰嗦 图和文对不上 不可用,甚至代码还出错 我总结一个清晰不罗嗦版: 原理: 从数组头元素索引i开始,寻找后面最小的值(比i位 ...
随机推荐
- 【codeforces 810B】Summer sell-off
[题目链接]:http://codeforces.com/contest/810/problem/B [题意] 每天有ki件物品,你知道每天能卖掉li件; 然后让你选f天; 这f天,可以将ki乘上2; ...
- 第九章 Servlet API
第九章 Servlet API Servlet API 定义了Servlet和服务器之间的一个标准接口,这使得Servlet具有跨应用服务器的特性,通过使用Servlet API,开发人员不必关心服务 ...
- OS 中文斜体 Italic Font Chinese - iOS_Girl
CGAffineTransform matrix = CGAffineTransformMake(1, 0, tanf(15 * (CGFloat)M_PI / 180), 1, 0, 0); UI ...
- python-Pymyslql-requests_html:把腾讯新闻的今日推荐和链接存进数据库
使用pumsql封装的部分功能 request_html:打开www.qq.com的例子 结果: PS:记得处理数据
- sqlplus登录提示:ORA-12162:TNS:net service name is incorrectly specified错误
[root@localhost ~]# su - oracle [oracle@localhost ~]$ sqlplus '/as sysdba' SQL*Plus: Release 11.2.0. ...
- hibernate之4.延迟载入
延迟载入: 仅仅有当使用以实体对象的属性(除主键属性外)时,才会发送查询语句到数据库 get不支持延迟载入 @Test public void getTest(){ Session session=n ...
- bzoj2463: [中山市选2009]谁能赢呢?(博弈论)
2463: [中山市选2009]谁能赢呢? 题目:传送门 题解: 水体! n为偶数的话必能被1*2的矩形覆盖,那么因为一开始在左上角,所以先手一定可以先组成一个矩形,那么先手肯定必胜! n为奇数和上面 ...
- hdoj--1016--Prime Ring Problem(递归回溯)
Prime Ring Problem Time ...
- Vmware Workstation及Centos6.8 的安装
转自:http://www.mamicode.com/info-detail-1462939.html 一.什么是Vmware Workstation Vmware Workstation是Vmwar ...
- node,koa 图片批量添加水印,可手动配置水印位置
公司设计在处理京东上架商品图片的时候,需要给设计好的图片添加京东的“logo”,并且logo位置得根据图片来摆放,需要通过计算得出logo位置.那样太麻烦了,于是就用node,koa写了批量给图片添加 ...