Java四种排序:冒泡,选择,插入,二分(折半插入)
四种排序:冒泡,选择,插入,二分(折半插入)
public class Test{
// public static void main(String[] args) {
// Test t=new Test();
public static void bubbleSort(int[] source){
// 交换类排序思想: 两两比较待排序的关键字,发现记录相反则交换,直到没有反序的记录。
for(int i = source.length - 1; i > 0; i--){
for(int j = 0; j < i; j++){
if(source[j] > source[j + 1]){
swap(source, j, j+1);
}
}
}
} public static void selectSort(int[] source){
// 选择类排序思想:首先在未排序的序列中找到最小元素,存放到排序序列的起始位置,
// 然后再从剩余未排序的元素中找到下一个最小元素,放到已排序序列的末尾。
for (int i = 0; i < source.length; i++){
for (int j = i+1; j < source.length; j++){
if (source[j] > source[i]){
swap(source, i, j);
}
}
} }
// 从第一个元素开始,该元素可以认为已经被元素
// 取出下一个元素,在已经拍序的元素中从后往前扫描,如果该元素大于新一个,则将该元素移到下一个
public static void insertSort(int[] source){
for (int i = 1; i < source.length; i++){
for (int j = i ; (j > 0) && (source[j] < source[j - 1]); j--){
swap(source, j, j-1);
} }
}
public static void halfSort(int[] source){
// 二分查找(折半插入)排序思想: 对于第j个元素而言,前面j-1个元素已经有序。
//在有序的队列里面先折半查找出待插入的位置,再统一后移。最后插入要插入的元素。
int temp, low, high, mid;
for (int i =1; i<10; i++){
temp = source[i];
low = 0;
high = i-1;
while (low <= high){
mid = (low + high) / 2;
if (source[mid] > temp)
high = mid - 1;
else
low = mid + 1;
}
for (int j = i+1; j > high; j--){
source[j+1] = source[j];
}
source[high+1] = temp;
}
} private static void swap(int[] source, int x, int y){
int temp = source[x];
source[x] = source[y];
source[y] = temp;
} public static void main(String[] args){
int[] a = {4, 2, 1, 3, 4, 6, 7, 8, 0};
int i;
bubbleSort(a);
for (i = 0;i<a.length;i++){
System.out.printf("%d ", a[i]);
}
}
}
Java四种排序:冒泡,选择,插入,二分(折半插入)的更多相关文章
- golang实现四种排序(快速,冒泡,插入,选择)
本文系转载 原文地址: http://www.limerence2017.com/2019/06/29/golang07/ 前面已经介绍golang基本的语法和容器了,这一篇文章用golang实现四种 ...
- AJPFX关于Java中运用数组的四种排序方法
JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法.冒泡法.选择排序法.插入排序法.快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现.冒泡法是运用遍历数组进行比 ...
- python 数据结构与算法之排序(冒泡,选择,插入)
目录 数据结构与算法之排序(冒泡,选择,插入) 为什么学习数据结构与算法: 数据结构与算法: 算法: 数据结构 冒泡排序法 选择排序法 插入排序法 数据结构与算法之排序(冒泡,选择,插入) 为什么学习 ...
- 【C++】四种排序算法的时间比较
四种排序算法的时间比较 [注]clock函数对输入(用户输入)元素N排序的计时 #include<iostream> #include<time.h> using namesp ...
- java四种数组排序
数组的四种排序 1.快速排序法Arrays.sort(); 用法1.sort(byte[] a) 对指定的 byte 型数组按数字升序进行排序. sort(byte[] a, int fro ...
- Pascal、VB、C#、Java四种语法对照表
因为工作原因,自学会了vb后陆续接触了其它语言,在工作中经常需要与各家使用不同语言公司的开发人员做程序对接,初期特别需要一个各种语法的对照比,翻看了网络上已有高人做了整理,自己在他基础上也整理了一下, ...
- 线程池是什么?Java四种线程池的使用介绍
使用线程池的好处有很多,比如节省系统资源的开销,节省创建和销毁线程的时间等,当我们需要处理的任务较多时,就可以使用线程池,可能还有很多用户不知道Java线程池如何使用?下面小编给大家分享Java四种线 ...
- java四种引用与回调函数
JAVA四种引用 java对象的引用包括: 强引用 软引用 弱引用 虚引用 Java中提供这四种引用类型主要有两个目的: 第一是可以让程序员通过代码的方式决定某些对象的生命周期: 第二是有利于JVM进 ...
- Java 四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用.本文是基础篇,后面会分享下线程池一些高级功能. 1.new Thread的弊端执行一个异步任务你还只是如下new T ...
随机推荐
- 29-jsp中用js进行时间格式转化
CST可以为如下4个不同的时区的缩写: 美国中部时间:Central Standard Time (USA) UT-6:00 澳大利亚中部时间:Central Standard Time (Austr ...
- python:在for遍历list时使用remove出现的问题以及解析(转)
原文地址:http://blog.csdn.net/circle2015/article/details/64444300最近面试时,面试官在纸上写了几行代码,说是很简单的问题,我看后直接懵逼...如 ...
- 如何查看mysql数据库表所使用的引擎(转载)
我们怎么样才能准确的查看mysql的存储引擎呢,下面我给大家介绍两种正确的方式. 1)正确方式一: SHOW TABLE STATUS from 数据库库名 where Name='表名' 2)mys ...
- Linux ulimit
一.简介 二.语法 三.其他 1)linux下进程的进程最大数.最大线程数.进程打开的文件数和ulimit命令修改硬件资源限制 http://blog.csdn.net/gatieme/art ...
- 去掉easyui datagrid内部虚线的方式。
去掉easyui datagrid内部虚线的方式.easyui datagrid的样式是统一写在样式文件中的,如果想要统一替换可以找对应的datagird样式文件中的以下部分.如果想要改 ...
- 卸载服务器GitLab
sudo gitlab-ctl uninstall sudo rpm -e gitlab-ce find / -name gitlab|xargs rm -rf
- 20172306《Java程序设计》第四周学习总结
20172306 <Java程序设计>第四周学习总结 教材学习内容总结 第四章: 1. 类和对象的回顾:除了看书,我还上网找了一下两者的一些区别. 2. 编写类时,了解到初始化.形式参数. ...
- linux(centOS7,mini),python环境的搭建
今天想试一试python在linux下的工作,在vmware中安装了centOS7版本的linux,先前装过一个带GUI的,但是感觉在虚拟机理跑的太慢,干脆直接装一个最精简的mini版,试一下ifco ...
- [linux]Linux如何查看文件中的中间部分内容
最基本的是cat.more和less. 1. 如果你只想看文件的前5行,可以使用head命令,如: head -5 /etc/passwd 2. 如果你想查看文件的后10行,可以使用tail命令,如: ...
- Minimum Size Subarray Sum LT209
Given an array of n positive integers and a positive integer s, find the minimal length of a contigu ...