[Java]数组排序-选择排序 冒泡排序 插入排序
1 选择排序
原理:a 将数组中的每个元素,与第一个元素比较
如果这个元素小于第一个元素, 就将这个
两个元素交换.
b 每轮使用a的规则, 可以选择出一个最小元素
放到第一个位置.
c 经过n-1轮比较完成排序
简单说: 每轮选择最小的放到前面.
2 冒泡排序
原理: a 逐一比较数组中相邻的两个元素, 如果后面
的数字小于前面的数字, 就交换先后元素.
b 经过一个轮次的比较, 一定有一个最大的排
在最后的位置.
c 每次比较剩下的元素, 经过n-1次比较, 可以
实现排序
简单说: 比较交换相邻元素,每次最大的漂移到最后
3 插入排序
原理: a 将数组分为两部分, 将后部分的第一张逐一
与前部分每一张比较, 如果当前元素小, 就
一点被比较元素.
b 找到合理位置插入.
package com.dezai;
import java.util.Arrays;
public class VAlign {
public static void main(String[] args) {
int[] a=new int[]{8,3,5,1,4,2,7};
String s=Arrays.toString(selectionSort(a));
System.out.println("选择排序:"+s);
String s1=Arrays.toString(bubolSort(a));
System.out.println("冒泡排序: "+s1);
String s2=Arrays.toString(InserSort(a));
System.out.println("插入排序: "+s2);
}
/*
* 选择排序
*/
public static int[] selectionSort(int[] ary){
for(int i=0;i<ary.length;i++){
for(int j=i+1;j<ary.length;j++){
if(ary[j]<ary[i]){
int temp=ary[i];
ary[i]=ary[j];
ary[j]=temp;
}
}
}
return ary;
}
/*
* 冒泡排序
*/
public static int[] bubolSort(int[] ary){
for(int i=0;i<ary.length;i++){
for(int j=0;j<ary.length-i-1;j++){
if(ary[j]>ary[j+1]){
int temp=ary[j+1];
ary[j+1]=ary[j];
ary[j]=temp;
}
}
}
return ary;
}
/*
* 插入排序
*/
public static int[] InserSort(int[] ary){
for(int i=0;i<ary.length;i++){
int temp =ary[i];
int j;
for(j=i-1;j>=0 && temp<ary[j];j--){
if (temp<ary[j]){
ary[j+1]=ary[j];
}else{
break;
}
}
ary[j+1]=temp;
}
return ary;
}
}
[Java]数组排序-选择排序 冒泡排序 插入排序的更多相关文章
- JAVA实现选择排序,插入排序,冒泡排序,以及两个有序数组的合并
一直到大四才开始写自己的第一篇博客,说来实在有点羞愧.今天写了关于排序的算法题,有插入排序,冒泡排序,选择排序,以下贴上用JAVA实现的代码: public class test5 { public ...
- Java ——数组 选择排序 冒泡排序
本节重点思维导图 数组 public static void main(String[] args) { int a ; a=3; int[] b; b = new int[3];//强制开辟内存空间 ...
- [模板]选择排序&&冒泡排序&&插入排序
#include<iostream> #include<cstdio> #include<bits/stdc++.h> using namespace std; v ...
- Java数据结构和算法总结-冒泡排序、选择排序、插入排序算法分析
前言:排序在算法中的地位自然不必多说,在许多工作中都用到了排序,就像学生成绩统计名次.商城商品销量排名.新闻的搜索热度排名等等.也正因为排序的应用范围如此之广,引起了许多人深入研究它的兴趣,直至今天, ...
- Java排序算法分析与实现:快排、冒泡排序、选择排序、插入排序、归并排序(二)
一.概述: 上篇博客介绍了常见简单算法:冒泡排序.选择排序和插入排序.本文介绍高级排序算法:快速排序和归并排序.在开始介绍算法之前,首先介绍高级算法所需要的基础知识:划分.递归,并顺带介绍二分查找算法 ...
- 【排序算法】——冒泡排序、选择排序、插入排序、Shell排序等排序原理及Java实现
排序 1.定义: 所谓排序,即是整理文件中的内容,使其按照关键字递增或递减的顺序进行排列. 输入:n个记录,n1,n2--,其对应1的关键字为k1,k2-- 输出:n(i1),n(i2)--,使得k( ...
- JavaScript算法(冒泡排序、选择排序与插入排序)
冒泡排序.选择排序与插入排序复杂度都是二次方级别的,放在一起说吧. 介绍一些学习这三个排序方法的比较好的资料.冒泡排序看<学习JavaScript数据结构与算法>介绍的冒泡排序,选择排序看 ...
- Java选择排序,插入排序,快速排序
public class Test { public static void main(String[] args) { int a[] = { 1, 2, 3, 4, 5 }; 选择排序(a); ...
- java:冒泡排序、选择排序、插入排序实现
整数排序 给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法. 样例 样例 1: 输入: [3, 2, 1, 4, 5] 输出: [1, 2, 3, 4, 5] ...
随机推荐
- python学习之路基础篇(第五篇)
前四天课程回顾 1.python简介 2.python基本数据类型 类: int:整型 | str:字符串 | list:列表 |tuple:元组 |dict:字典 | set:集合 对象: li = ...
- 13.QT-QMainWindow组件使用
QMainWindow介绍 主窗口是与用户进行长时间交互的顶层窗口,比如记事本 主窗口通常是应用程序启动后显示的第一个窗口 QMainWindow是Qt中主窗口的基类,继承于QWidget,如下图所示 ...
- Go 语言 goto 语句
Go 语言的 goto 语句可以无条件地转移到过程中指定的行. goto语句通常与条件语句配合使用.可用来实现条件转移, 构成循环,跳出循环体等功能. 但是,在结构化程序设计中一般不主张使用goto语 ...
- PHP MySQL Order By 关键词
ORDER BY 关键词用于对记录集中的数据进行排序. ORDER BY 关键词 ORDER BY 关键词用于对记录集中的数据进行排序. ORDER BY 关键词默认对记录进行升序排序. 如果你想降序 ...
- pxe无人值守安装linux机器笔记
最近做一些集群的测试的工作,做服务器测试最根本就是要安装系统,曾经我们用十几个光驱并行安装光驱的日子过去了,自从有了pxe一两天搭建好一个集群不是梦!当然做多了集群的搭建工作最多的感受就是,其实运维工 ...
- iOS学习笔记--数据存储
iOS应用数据存储的常用方式 XML属性列表(plist)归档 Preference(偏好设置) NSKeyedArchiver归档(NSCoding) SQLite3 Core Data 1. XM ...
- 23 服务的启动Demo2
MainActivity.java package com.qf.day23_service_demo2; import android.app.Activity; import android.co ...
- EBS客户化迁移SQL
检查一些作废了的东西是否在程序包中还有用 SELECT t.* FROM ALL_SOURCE T WHERE T.TEXT LIKE '%CUX_AP_OA_OMS_PROGRAM_ELECT%' ...
- Android简易实战教程--第十九话《手把手教您监听EditText文本变化,实现抖动和震动的效果》
昨晚写博客太仓促,代码结构有问题,早上测试发现没法监听文本变化!今日更改一下.真心见谅啦,哈哈!主活动的代码已经改好了,看截图这次的确实现了文本监听变化情况. 监听文本输入情况,仅仅限于土司略显low ...
- mac os X下的updatedb
unix或linux下使用locate指令在其数据库中查询文件,使用updatedb可以 更新locate的数据库.而在mac os X下却找不到updated这个程序.使用 man locate查看 ...