人人都来写算法 之 插入排序

来源:互联网 发布:java构造图例子 编辑:程序博客网 时间:2024/06/05 03:45

最近写博客的时间明显减少了,自己要反思一下,利用下班的一点时间,写了插入排序的算法实现,供大家参考。也自省一下:学习如逆水行舟,不进则退!


这里还是以最简单的整型数组为例,随后再分析一下list结构的插入排序。


CSDN的代码粘贴显示效果不是太好,还是用自己喜欢的格式吧,代码为了方便复制,附后。


#include <iostream>
using std::cout;
using std::endl;

void insertion_sort(int dataList[], int count)
{
    int first_unsorted;
    int currentIndex;
    int currentItem;

    for(first_unsorted = 1; first_unsorted<count; ++first_unsorted)
    {
        if(dataList[first_unsorted] < dataList[first_unsorted-1])
        {
            currentIndex = first_unsorted;
            currentItem = dataList[first_unsorted]; 
            
            while ( currentIndex > 0 && (dataList[currentIndex-1] > currentItem))
            {
                dataList[currentIndex] = dataList[currentIndex-1];
                currentIndex--;
            }
            dataList[currentIndex] = currentItem;
        }
    }
}

int main()
{
    const int count = 10;
    int data[count] = {7,2,6,4,0,9,5,1,3,8};
    insertion_sort(data, count);

    for(int i = 0; i< count; i++)
    {
        cout<<data[i]<<endl;
    }
    getchar();
}



#include <iostream>using std::cout;using std::endl;void insertion_sort(int dataList[], int count){    int first_unsorted;    int currentIndex;    int currentItem;    for(first_unsorted = 1; first_unsorted<count; ++first_unsorted)    {        if(dataList[first_unsorted] < dataList[first_unsorted-1])        {            currentIndex = first_unsorted;            currentItem = dataList[first_unsorted];                         while ( currentIndex > 0 && (dataList[currentIndex-1] > currentItem))            {                dataList[currentIndex] = dataList[currentIndex-1];                currentIndex--;            }            dataList[currentIndex] = currentItem;        }    }}int main(){    const int count = 10;    int data[count] = {7,2,6,4,0,9,5,1,3,8};    insertion_sort(data, count);    for(int i = 0; i< count; i++)    {        cout<<data[i]<<endl;    }    getchar();}




原创粉丝点击