• 数据结构学习之直接插入排序


    转自: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 }
  • 相关阅读:
    css之深入理解padding
    css布局大杂烩
    css深入理解margin
    css之深入理解border
    css样式画各种图形
    css Sprite雪碧图
    JVM,JRE,JDK
    JAVA 遍历数组
    JAVA 得到数组的长度
    大一对软件工程
  • 原文地址:https://www.cnblogs.com/sunfie/p/4782209.html
Copyright © 2020-2023  润新知