直接插入排序InsertSort

本文详细记录了在使用VS2010开发过程中遇到的一个排序算法实现中,由于系统库文件ctype.h的问题导致程序无法正常运行的故障排查过程。通过更换开发环境为VS2008并最终解决问题,同时分享了完整的代码实现,包括默认构造函数、重载构造函数、插入排序算法实现以及输出排序结果的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      一个最简答的程序,练练手,结果是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/archive/2011/09/19/2180861.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值