算法——插入排序
来源:互联网 发布:龙应台我的祖国 知乎 编辑:程序博客网 时间:2024/05/20 18:51
public class Insertion { public static void sort(Comparable[] a){ for(int i = 0; i < a.length;i++){ for(int j = i; j > 0 && less(a[j],a[j-1]);j--){ echo(a,j,j-1); } } } public static boolean less(Comparable v,Comparable w){ return v.compareTo(w) < 0; } public static void echo(Comparable[] a,int i,int j){ Comparable t = a[i]; a[i] = a[j]; a[j] = t; } public static void show(Comparable[] a){ for(int i = 0; i < a.length;i++ ){ System.out.print(a[i] + " "); } } public static boolean isSorted(Comparable[] a){ for(int i = 1; i < a.length;i++){ if(less(a[i],a[i-1])) return false; } return true; } public static Comparable[] Random(int num){ Integer[] a = new Integer[num]; Random rand = new Random(); for(int i = 0;i<num;i++){ a[i] = rand.nextInt(10000); } return a; } public static void main(String[] args) { Comparable[] a = Selection.Random(20000); Long start = System.currentTimeMillis(); sort(a); Long end = System.currentTimeMillis(); System.out.println("Time is " + (end - start)); /*show(a);*/ }}
思路:就像打牌,把牌插入合适的位置,从右到左,插入比某张牌大的位置,而刚开始,只有一张,默认为已经排好序了。
0 0
- 排序—插入排序算法
- 排序算法—插入排序
- 数据结构&算法实践—【排序|插入排序】插入排序
- 排序算法—插入排序之直接插入排序
- 算法——插入排序
- 算法——插入排序
- 【算法】——插入排序
- 算法——插入排序
- 算法——插入排序
- 【算法系列】—插入排序
- 算法—直接插入排序
- 排序算法——插入排序(直接插入排序、折半插入排序、希尔排序)
- 排序算法——插入排序
- 排序算法——二分插入排序
- 排序算法之一——插入排序
- 排序算法——插入排序
- 排序算法——插入排序
- 排序算法总结——插入排序
- java.io.IOException: Failed to replace a bad datanode on the existing pipeline due to no more good
- 用socket(asio)实现了smtp的几个简单的指令
- 个人学习之感
- eclipse中创建的web项目中的jsp页面报错
- ThinkPHP框架的的流程控制-请求视图页面
- 算法——插入排序
- JAVA中迭代器的解释
- Data语意学
- unity3D ShaderLab <四>漫反射光照改善技巧
- js删除数组里的某个元素
- C++ 类中的成员模板
- 试验
- 在Linux中使用Python模拟键盘按键
- !!!!二级指针应用部分的一点重要总结!!!