<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 国产中文字幕免费观看| 中文字幕精品亚洲无线码二区| 婷婷久久久亚洲欧洲日产国码AV| 国产99视频精品免费视频76| 日韩成人免费视频| 好男人视频在线观看免费看片| 亚洲女人被黑人巨大进入| 国产成人高清亚洲一区久久| a级男女仿爱免费视频| 永久在线毛片免费观看| 亚洲精华液一二三产区| 最近中文字幕mv免费高清视频8 | 国产精品成人无码免费| 亚洲成av人片天堂网无码】| 国产日产成人免费视频在线观看| 免费在线观看一区| 成人看的午夜免费毛片| 亚洲日本一线产区和二线| 99免费观看视频| 亚洲ts人妖网站| 波多野结衣一区二区免费视频| 一区免费在线观看| 久久亚洲国产精品五月天| 2019中文字幕免费电影在线播放| 久久久久se色偷偷亚洲精品av| 午夜dj免费在线观看| 一级做a毛片免费视频| 国产v片免费播放| 美女被免费网站91色| 亚洲嫩草影院在线观看| 又色又污又黄无遮挡的免费视| 两性色午夜视频免费播放| 亚洲精品免费在线视频| 国产女高清在线看免费观看| 中文字幕手机在线免费看电影| 亚洲精品在线视频观看| 色www永久免费视频| a级毛片毛片免费观看永久| 亚洲综合中文字幕无线码| 成人无码区免费视频观看 | 日本xxxx色视频在线观看免费|