插入排序的代码实现

来源:互联网 发布:淘宝不能搜索 编辑:程序博客网 时间:2024/05/29 18:01

最近有时间会开始看算法导论,一点一点的把算法导论中的一些常见算法都实现一下,也算是扩充一下LZ的知识储备和代码储备,这样,无论什么时候要什么算法,LZ能很快找到,深有感慨,“纸上得来终觉浅,绝知此事要躬行”。理论到位了,代码也要到位。

#include <iostream>using namespace std;//LZ这里添加了一个模板类template <class T>int getArrayLen(T& array){//使用模板定义一个函数getArrayLen,该函数将返回数组array的长度return (sizeof(array) / sizeof(array[0]));}int main(){    int array[6] = {31,41,59, 26, 41, 58};    for (int i = 0; i < getArrayLen(array); i++)    {        cout << "the " << i << "th element is " << array[i] << endl;    }    for (int j = 2; j < getArrayLen(array); j++)    {        int key = array[j];        int i = j - 1;        cout << i << endl;        while(i > 0 && array[i]>key)        {            array[i+1] = array[i];            i = i - 1;            cout << i << endl;        }        array[i + 1] = key;    }    cout << "after the insertion-sort"<< endl;    for (int i = 0; i < getArrayLen(array); i++)    {        cout << "the " << i << "th element is " << array[i] << endl;    }    return 0;}

这里写图片描述

下面是输出,可能比较冗余,但是这样会显得条理清晰些,如果有bug会比较容易发现!第一个算法就OK啦♪(^∇^*)