博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
插入排序——java实现
阅读量:5272 次
发布时间:2019-06-14

本文共 1075 字,大约阅读时间需要 3 分钟。

插入排序的基本思想就是遍历一边列表,将a[i]依次通过a[i-1]、a[i-2]、a[i-3]...依次比较并交换位置的方式插入合适的位置。

for: i from 0~n-1{

  for: j from i~0

    if(a[j] <= a[j-1]) 交换a[j]和a[j-1] break;

}

1 package 排序; 2  3 import edu.princeton.cs.algs4.In; 4 import edu.princeton.cs.algs4.StdOut; 5  6 /** 7  * 插入排序所需额时间取决于输入中元素的初始顺序。 8  * 例如,对一个很大的且其中的元素已经有序或接近有序的数组进行排序会比对随机顺序的数组或是逆序数组进行排序要快的多 9  *@author evasean www.cnblogs.com/evasean/10  *11  */12 @SuppressWarnings("rawtypes")13 public class Insertion插入排序 {14     public static void sort(Comparable[] a){15         int n = a.length;16         for(int i=1 ; i
0 && less(a[j],a[j-1]);j--)19 exch(a,j,j-1);20 }21 }22 @SuppressWarnings("unchecked")23 private static boolean less(Comparable v, Comparable w){24 return v.compareTo(w) < 0;25 }26 private static void exch(Comparable[] a, int i, int j){27 Comparable t = a[i];28 a[i] = a[j];29 a[j] = t;30 }31 private static void show(Comparable[] a){32 for(int i=0; i

 

转载于:https://www.cnblogs.com/evasean/p/7232865.html

你可能感兴趣的文章
湖南多校对抗赛(2015.03.28) H SG Value
查看>>
hdu1255扫描线计算覆盖两次面积
查看>>
hdu1565 用搜索代替枚举找可能状态或者轮廓线解(较优),参考poj2411
查看>>
程序存储问题
查看>>
优雅地书写回调——Promise
查看>>
AX 2009 Grid控件下多选行
查看>>
PHP的配置
查看>>
Struts框架----进度1
查看>>
Round B APAC Test 2017
查看>>
MySQL 字符编码问题详细解释
查看>>
Ubuntu下面安装eclipse for c++
查看>>
Windows 2003全面优化
查看>>
格而知之2:UIView的autoresizingMask属性探究
查看>>
我的Hook学习笔记
查看>>
js中的try/catch
查看>>
寄Android开发Gradle你需要知道的知识
查看>>
整理推荐的CSS属性书写顺序
查看>>
css & input type & search icon
查看>>
C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
查看>>
ssm框架之将数据库的数据导入导出为excel文件
查看>>