四种排序:冒泡,选择,插入,二分(折半插入)

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四种排序:冒泡,选择,插入,二分(折半插入)的更多相关文章

  1. golang实现四种排序(快速,冒泡,插入,选择)

    本文系转载 原文地址: http://www.limerence2017.com/2019/06/29/golang07/ 前面已经介绍golang基本的语法和容器了,这一篇文章用golang实现四种 ...

  2. AJPFX关于Java中运用数组的四种排序方法

    JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法.冒泡法.选择排序法.插入排序法.快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现.冒泡法是运用遍历数组进行比 ...

  3. python 数据结构与算法之排序(冒泡,选择,插入)

    目录 数据结构与算法之排序(冒泡,选择,插入) 为什么学习数据结构与算法: 数据结构与算法: 算法: 数据结构 冒泡排序法 选择排序法 插入排序法 数据结构与算法之排序(冒泡,选择,插入) 为什么学习 ...

  4. 【C++】四种排序算法的时间比较

    四种排序算法的时间比较 [注]clock函数对输入(用户输入)元素N排序的计时 #include<iostream> #include<time.h> using namesp ...

  5. java四种数组排序

    数组的四种排序 1.快速排序法Arrays.sort(); 用法1.sort(byte[] a)      对指定的 byte 型数组按数字升序进行排序. sort(byte[] a, int fro ...

  6. Pascal、VB、C#、Java四种语法对照表

    因为工作原因,自学会了vb后陆续接触了其它语言,在工作中经常需要与各家使用不同语言公司的开发人员做程序对接,初期特别需要一个各种语法的对照比,翻看了网络上已有高人做了整理,自己在他基础上也整理了一下, ...

  7. 线程池是什么?Java四种线程池的使用介绍

    使用线程池的好处有很多,比如节省系统资源的开销,节省创建和销毁线程的时间等,当我们需要处理的任务较多时,就可以使用线程池,可能还有很多用户不知道Java线程池如何使用?下面小编给大家分享Java四种线 ...

  8. java四种引用与回调函数

    JAVA四种引用 java对象的引用包括: 强引用 软引用 弱引用 虚引用 Java中提供这四种引用类型主要有两个目的: 第一是可以让程序员通过代码的方式决定某些对象的生命周期: 第二是有利于JVM进 ...

  9. Java 四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor

    介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用.本文是基础篇,后面会分享下线程池一些高级功能. 1.new Thread的弊端执行一个异步任务你还只是如下new T ...

随机推荐

  1. iPhone X系列 的获取 - 安全区顶部和底部高度

    ///1. 获得当前窗口 var JY_WINDOW: UIWindow? { get{ if let app = UIApplication.shared.delegate as? AppDeleg ...

  2. Mac下IntelliJ的Git、GitHub配置及使用

    1.git简介 Git是目前流行的分布式版本管理系统.它拥有两套版本库,本地库和远程库,在不进行合并和删除之类的操作时这两套版本库互不影响.也因此其近乎所有的操作都是本地执行,所以在断网的情况下任然可 ...

  3. 一个命令查看mysql的所有配置(原创)

    在mysql的命令提示符下,执行下面一句话,查看mysql服务器的所有全局配置信息: mysql> show global variables; 得到: 上表的文本内容: "Varia ...

  4. win7系统 无线上网卡 共享网络,设置成wifi热点

    给家人买了一个新的智能手机,用的移动神州行套餐,没有开通3G,想更新一些应用软件,于是想到能不能用电脑上的无线上网卡. 在网上找到了一方法,试了一下,还真是可以. 步骤如下: 用无线上网卡拨号上网,并 ...

  5. GitHub上Markdown语法的高级应用

    高级语法格式 本篇的内容来源于Github使用高级格式写作.如果在观看时有什么问题,可以直接查阅源文件.另外需要说明的是Git对Markdown的支持增加了一些扩展功能,因此在Git上可以渲染的Mar ...

  6. iOS.NS_DEPRECATED_IOS

    如何处理被NS_DEPRECATED_IOS标记的selector, 例如:类 AVAudioSession中有: - (BOOL)setPreferredHardwareSampleRate:(do ...

  7. fedora25的免密码rsync服务配置

      目标:实现免密同步数据: 1.安装rsync包: 2.手工添加配置文件: cat  /etc/rsyncd.conf # See rsyncd.conf man page for more opt ...

  8. export export defalut

    require/exports 和 import/export 形式不一样 require/exports 的用法只有以下三种简单的写法: const fs = require('fs') expor ...

  9. Unix和Windows文件格式转化

    可能的原因有: 1)执行权限的问题 解决方法: chmod +x ***.py 2)python版本的问题 解决方法:在执行时或者在py文件中选择好对应的Python的版本 3)python文件格式的 ...

  10. Spring PropertyResolver 占位符解析(一)API 介绍

    Spring PropertyResolver 占位符解析(一)API 介绍 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html ...