<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-126  評論-247  文章-5  trackbacks-0

        
    插入排序是通過構建有序序列,對于未排序數據,在已排序序列中從后向前掃描,找到相應位置并插入。

    基本步驟:

    1. 從第一個元素開始,該元素可以認為已經被排序

    2. 取出下一個元素,在已經排序的元素序列中從后向前掃描

    3. 如果該元素(已排序)大于新元素,將該元素移到下一位置

    4. 重復步驟3,直到找到已排序的元素小于或者等于新元素的位置

    5. 將新元素插入到該位置后

    6. 重復步驟 2 ~ 5


    C++ 實現

      
    //直接插入排序
    //按自然順序
    void insertsort(Element array[], int len){
        Element e;
        
    int index;
        
    for(int i = 1; i < len; i++){  //默認第一個元素(下標索引值0)已經有序
            e = array[i];   //待排序元素
            for(index = i - 1; index >= 0 && array[index] > e; index--){  //待排序元素較小
                array[index + 1= array[index];  //后移
            }
            array[index 
    + 1= e;  //插入待排序元素
        }
    }
      


    Java 實現

          
    //直接插入排序,按自然順序
    public static void insertsort(int[] array){
        
    int key, index;  //key:待排序數, index:已排序下標索引值
        for(int i = 1; i < array.length; i++){  //默認第一個元素(下標從0開始)已經有序
            key = array[i];  //待排序元素
            for(index = i - 1; index >= 0 && array[index] > key; index--){ //待排序數較小
                array[index + 1= array[index];  //后移
            }
            array[index 
    + 1= key;  //插入待排序元素
        }
    }
          


    C++ 實現完整代碼

            
    /**
     * <!--
     * File   : insertsort.h
     * Author : fancy
     * Email  : fancydeepin@yeah.net
     * Date   : 2013-02-05
     * --!>
     
    */
    #include 
    <stdio.h>
    #include 
    <stdlib.h>
    #define length(array) sizeof(array) / sizeof(array[0])
    #define Element int
    #define format "%d"
      
    //直接插入排序
    //按自然順序
    void insertsort(Element array[], int len){
        Element e;
        
    int index;
        
    for(int i = 1; i < len; i++){  //默認第一個元素(下標索引值0)已經有序
            e = array[i];   //待排序元素
            for(index = i - 1; index >= 0 && array[index] > e; index--){  //待排序元素較小
                array[index + 1= array[index];  //后移
            }
            array[index 
    + 1= e;  //插入待排序元素
        }
    }

    //遍歷數組
    void visit(Element array[], int len){
        
    for(int i = 0; i < len; i++){
            printf(format, array[i]);
        }
    }
         

     

       
    /**
     * <!--
     * File   : InsertSort.cpp
     * Author : fancy
     * Email  : fancydeepin@yeah.net
     * Date   : 2013-02-05
     * --!>
     
    */
    #include 
    "insertsort.h"

    int main() {

        Element array[
    8= {65318724};
        
    int len = length(array);
        printf(
    "\n排序前: ");
        visit(array, len);
        printf(
    "\n直接插入排序: ");
        insertsort(array, len);
        visit(array, len);
        
    /**
         * 控制臺輸出結果:
         *
         * 排序前: 65318724
         * 直接插入排序: 12345678
         
    */
        
    return 0;
        
    }
       


    Java 實現完整代碼

      
    package net.yeah.fancydeepin.sort.insert;
    /**
     * <!--
     * Author : fancy
     * Email  : fancydeepin@yeah.net
     * Date   : 2013-02-05
     * --!>
     
    */
    public class Sort {

        
    private Sort(){}
          
        
    //直接插入排序,按自然順序
        public static void insertsort(int[] array){
            
    int key, index;  //key:待排序數, index:已排序下標索引值
            for(int i = 1; i < array.length; i++){  //默認第一個元素(下標從0開始)已經有序
                key = array[i];  //待排序元素
                for(index = i - 1; index >= 0 && array[index] > key; index--){ //待排序數較小
                    array[index + 1= array[index];  //后移
                }
                array[index 
    + 1= key;  //插入待排序元素
            }
        }
    }
      

     

      
    package test;
    /**
     * <!--
     * Author : fancy
     * Email  : fancydeepin@yeah.net
     * Date   : 2013-02-05
     * --!>
     
    */
    import net.yeah.fancydeepin.sort.insert.Sort;

    public class Test {

        
    public static void main(String[] args) {
            
            
    int[] array = {65318724};
            Sort.insertsort(array);
            
    for(int obj : array){
                System.out.print(obj);
            }
        }
    }
      


     



      
    posted on 2013-02-05 13:13 fancydeepin 閱讀(1558) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 日韩高清免费在线观看| 国产精品亚洲不卡一区二区三区| 亚洲国产精品精华液| 亚洲精品无码99在线观看 | 羞羞视频免费网站入口| 亚洲熟妇无码AV在线播放| 中文字幕免费视频| 亚洲av最新在线观看网址| 国产亚洲精品激情都市| 亚洲毛片免费观看| 美女免费视频一区二区三区| 亚洲电影中文字幕| 日韩在线免费电影| 日本在线免费观看| 亚洲av无码成人精品区一本二本| 亚洲成AV人片一区二区| 永久免费观看的毛片的网站| 18禁超污无遮挡无码免费网站| 91在线亚洲综合在线| 亚洲人成精品久久久久| 日韩免费观看视频| 久久国产乱子伦精品免费看| 久久无码av亚洲精品色午夜| 亚洲av无码成h人动漫无遮挡 | 18观看免费永久视频| 一级毛片视频免费观看| 亚洲香蕉久久一区二区三区四区| 亚洲伊人久久综合影院| 成人黄动漫画免费网站视频| 国产精品偷伦视频观看免费| 色婷婷六月亚洲综合香蕉| 亚洲成a人片在线观看中文app| 久久久久国产成人精品亚洲午夜 | 69xx免费观看视频| 中文字幕成人免费高清在线视频 | 精品四虎免费观看国产高清午夜| 日韩成人精品日本亚洲| 亚洲成a人片在线观看精品| 亚洲AV综合色区无码一区| 亚洲精品视频在线观看你懂的| 国内一级一级毛片a免费|