zoukankan      html  css  js  c++  java
  • 排序算法---插入排序

      前面写了选择排序的原理和实现。现在来写一下插入排序的实现

    插入排序的原理和实现

      通常人们在整理桥牌的方法是一张一张的来,将每张牌插入到其他已经有序的牌中的适当位置。在计算机当中,为了给要插入的元素(新的牌)腾出的空间,我们需要将其余所有的元素在插入之前都向右移动一位。这种算法叫做插入排序。

      与选择排序一样,当前索引的左边的所有元素都是有序的。但是它们的最终位置还不是确定的(因为当前索引的右边的元素有可能比左边的有些元素小,这时候就需要调整位置)。但是党索引到达数组的右端时,排序就完成了。

      下面是实现:

    package sort;
    
    public class Insertion {
        public static void sort(Comparable[] a){
            int N = a.length;
            for (int i = 1; i < N; i++){
                for (int j=i; j > 0 && less(a[j], a[j-1]); j--){//如果后一个数比前一个数小,则交换位置
                    exch(a,j, j-1);
                }
            }
        }
        private static boolean less(Comparable v, Comparable w){
            return v.compareTo(w) < 0; //if v < w  v.compareTo(w) return -1 , then function return true;
        }
        private static void exch(Comparable[] a, int i, int j){
            Comparable t = a[i];
            a[i] = a[j];
            a[j] = t;
        }
    
        public static  boolean isSorted(Comparable[] a){
            for (int i = 1; i < a.length; i ++){
                if(less(i, i+1) ) return false;
            }
            return true;
        }
    }
  • 相关阅读:
    用vlc搭建简单流媒体服务器(UDP和TCP方式)
    html5 canvas类库 实例
    html5开放资料
    移动web资源整理
    android设备上运行i-jetty服务
    android上的i-jetty (1)环境搭建
    嵌入式Linux的web视频服务器的构建
    嵌入式web服务器
    视频播放器
    CAE医疗综合视听中心管理系统
  • 原文地址:https://www.cnblogs.com/c-supreme/p/9363442.html
Copyright © 2011-2022 走看看