直接插入排序InsertSort wang

      一个最简答的程序,练练手,结果是vs2010的系统库文件ctype.h出问题了,重装了vs2010,换成vs2008,google了n篇文章还是不知道这个bug怎么处理,留在这里放到小强的vc 6.0试试怎么样,搞的一夜没睡,不是问题困扰的,而是实验室的被子那是没法睡,睡了几分钟,脏的我全身是痒,就这么看了一夜的《职来职往》,没多大收获,最恐怖了,耗着时间看着热闹,还是回寝室洗个澡上课去...

     今天(20110920)Bug全部修复好了,代码详单如下:

InsertSort.h

/*
*宏定义,条件指示符#ifndef 的最主要目的是防止头文件的重复包含和编译
*/
#ifndef INSERTSORT_H
//先测试INSERTSORT_H是否被宏定义过
#define INSERTSORT_H//如果INSERTSORT_H没有被宏定义过,定义INSERTSORT_H,并编译下面的程序段
#include
<vector>
usingnamespace std;
class InsertSort
{
private:
int len;
vector
<int> list;
public:
//InsertSort();//默认的构造函数
InsertSort(vector<int> _list);//重载的构造函数
void insert_sort();
voidout();
};
//一定要加“;”
#endif

InsertSort.cpp

#include "InsertSort.h"
#include
<iostream>
usingnamespace std;
InsertSort::InsertSort(vector
<int> _list)
{
for (int i=0;i<_list.size();i++)
list.push_back(_list[i]);
}

void InsertSort::insert_sort()
{
int insertNum;
for (int i=0;i<list.size();i++)
{
insertNum
=list[i];
int j = i;
while(j>0&&insertNum<list[j-1])
{
list[j]
= list[j-1];
j
--;
}
list[j]
= insertNum;
}
}

void InsertSort::out()
{
for(int i=0;i< list.size(); i++)
{
cout
<< list[i]<<"";
//if((i+1)%18==0)
// cout<<endl;
}
cout
<<endl;
}

void main()
{
vector
<int> _list;
_list.push_back(
2012);
_list.push_back(
2008);
_list.push_back(
2011);
_list.push_back(
2009);
_list.push_back(
2010);

cout
<<"排序前序列:"<<endl;
for(int i=0; i < _list.size(); i++)
{
cout
<<_list[i]<<"";
}
InsertSort
is(_list);//采用调用构造函数的重载函数来创建新的对象
is.insert_sort();
cout
<<endl<<"排序后序列:"<<endl;
is.out();
getchar();
}

输出结果:

原文地址:https://www.cnblogs.com/Turtle/p/2180861.html