zoukankan      html  css  js  c++  java
  • 数据结构学习之直接插入排序

    转自:http://blog.csdn.net/m13666368773/article/details/7506678  

       

        看这张图不知道大家可否理解了,在插入排序中,数组会被划分为两种,“有序数组块”和“无序数组块”,第一遍的时候从“无序数组块”中提取一个数20作为有序数组块;第二遍的时候从”无序数组块“中提取一个数60有序的放到”有序数组块中“,也就是20,60;第三遍的时候同理,不同的是发现10比有序数组的值都小,因此20,60位置后移,腾出一个位置让10插入,然后按照这种规律就可以全部插入完毕。

     1 package com.swust.插入排序;
     2 
     3 import com.swust.utils.ArrayUtils;
     4 
     5 public class Example1 {
     6     public static void main(String[] args) {
     7         int[] arr = ArrayUtils.createArray(10);
     8         ArrayUtils.showArray(arr);
     9         sort(arr);
    10         String string = "";
    11         string.intern();
    12         System.out.println();
    13         ArrayUtils.showArray(arr);
    14     }
    15     public static void sort(int[] list){
    16              //无须序列  
    17             for (int i = 1; i < list.length; i++)  
    18             {  
    19                 int temp = list[i]; //10,11,33,1,3 
    20   
    21                 int j;  
    22                 //若提取的数据大于当前有序数组中的数据,则只需直接插入,无需移动数组中元素
    23                 for (j = i - 1; j >= 0 && temp < list[j]; j--)  
    24                 {  
    25                     list[j + 1] = list[j];  
    26                 }  
    27                 list[j+1] = temp;  
    28             }  
    29         }
    30 }
  • 相关阅读:
    etherlime-1-Quick Start
    etherlime-4-Etherlime CLI
    Sequelize-nodejs-2-basic usage
    Sequelize-nodejs-6-Instances
    Sequelize-nodejs-5-Querying
    Sequelize-nodejs-4-Model usage
    Sequelize-nodejs-3-model definition
    eclipse快捷键大全
    java第一课
    java程序员认证考试题库
  • 原文地址:https://www.cnblogs.com/sunfie/p/4782209.html
Copyright © 2011-2022 走看看