<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日韩精品久久久久久久 | 日韩成人免费视频| a级毛片毛片免费观看永久| a级毛片免费网站| 国产综合免费精品久久久 | 亚洲国产成人久久| 亚洲乱码日产精品BD在线观看| 亚洲小视频在线播放| 亚洲av永久无码精品三区在线4| 亚洲国产成人99精品激情在线| 中文字幕亚洲男人的天堂网络| 国产精品亚洲专区在线观看 | 亚洲综合在线成人一区| 亚洲大香伊人蕉在人依线| 亚洲六月丁香婷婷综合| MM1313亚洲国产精品| 一本久久免费视频| 精品国产污污免费网站| 91精品全国免费观看含羞草| 114一级毛片免费| 免费看美女让人桶尿口| 免费在线观看黄色毛片| 亚洲色精品88色婷婷七月丁香| 久久久亚洲精品视频| 亚洲二区在线视频| 美女羞羞喷液视频免费| a视频在线免费观看| 99爱在线精品免费观看| 国产色爽免费视频| 亚洲最大激情中文字幕| 亚洲精品一卡2卡3卡三卡四卡| 亚洲人成网站色在线观看| 手机永久免费的AV在线电影网| 久久九九AV免费精品| 国产精品久久久久久久久久免费| 免费一级成人毛片| 亚洲午夜精品一区二区|