zoukankan      html  css  js  c++  java
  • 【Algorithm】插入排序法

    通常人们整理桥牌的方法是一张一张的来,将每一张插入到其他已经有序的牌中的适当位置。

    • 思想:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的序列的合适位置,直到全部插入排序完为止。

    Java 示例代码如下:

    public class SortInsertion {
    
        public static void main(String[] args) {
            int[] a = {49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 1};
            System.out.println("排序之前:");
            for (int i=0; i<a.length; i++) {
                System.out.print(a[i] + " ");
            }
            
            // 直接插入排序
            for (int i=1; i<a.length; i++) {
                // 待插入元素
                int temp = a[i];
                int j=i-1;
                
                while (j>=0 && a[j]>temp) {
                    a[j+1] = a[j];
                    j--;
                }
                a[j+1] = temp;
            }
            
            System.out.println();
            for (int i=0; i<a.length; i++) {
                System.out.print(a[i] + " ");
            }
        }
    
    }

    PS: 也可以用 for 循环实现。但要主要 for 循环体语句的执行顺序 (参见:for循环的执行顺序),之前自己曾在这里糊涂了。

    参考:

    各种排序算法的分析及java实现

    动画演示:http://zh.visualgo.net/sorting.html

    此外,排序算法——插入排序 关于插入排序的思想,用抓牌比喻的很好!推荐下!

  • 相关阅读:
    rjust()方法
    rindex()方法
    rfind()方法
    replace()方法
    min(S)函数
    max(S)函数
    maketrans()方法
    lstrip()方法
    lower()方法
    eclipse Tomcat 启动报错
  • 原文地址:https://www.cnblogs.com/jaxer/p/5334221.html
Copyright © 2011-2022 走看看