码迷,mamicode.com
首页 > 编程语言 > 详细

1209.2——直接插入排序算法

时间:2015-12-09 17:18:08      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

#include <stdio.h>

 

//直接插入排序 5,4,6,2,1

//4 5 6

//6

void insertSort(int array[], int elementNum){

    int referenceNum = 0;//保存即将插入的那个值

    

    for (int i = 1; i < elementNum; i++) {

        referenceNum = array[i];

        

        int j = i - 1;

        //通过一个循环查找这个值应该插在哪个位置

        for (; j >= 0; j--) {

            if (array[j] > referenceNum) {

                array[j+1] = array[j];

            } else{

                //说明找到要插入的位置了

                break;

            }

        }

        

        //1.根本就没有移动

        //2.已经移动过了

        if (j+1 != i) {

            //动过了

            array[j+1] = referenceNum;

        }

    }

}

 

int main(int argc, const char * argv[]) {

    int array[] = {5,4,6,2,1};

    

    insertSort(array, 5);

    

    for (int i = 0; i < 5; i++) {

        printf("%d ", array[i]);

    }

    printf("\n");

    return 0;

}

 

1209.2——直接插入排序算法

标签:

原文地址:http://www.cnblogs.com/damonWq/p/5033034.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!