您的位置:首页 > 理论基础 > 数据结构算法

经典算法与数据结构的c++实现——插入排序

2016-03-16 07:46 615 查看
因为是经典的算法,所以网上描述一大把,直接上个图,直观些,给记性不好的(如我)一点儿提示。



下面是代码(欢迎批评指点,之后应该会放到github上:https://github.com/y277an/princeton_algs4):

//---------------------------------Specification of Program------------------------------
// Program Name:插入排序
// Tools:VS_2013
// Language: C++
// Description: 可自由输入,不需要提早知道数据长度
// Date:2016.3.16
// Author:mseddl
//----------------------------------------------------------------------------------------

#include <iostream>
using namespace std;
void InsertionSort(int *arr, int len)
{
for (int i = 1; i < len; i++)
{
for (int j = i-1; j >=0; j--)
{
int value = arr[j+1];//我们要插入的数值
if (value < arr[j])
{
arr[j+1] = arr[j];
arr[j] = value;
continue;
}
else
break;
}
}
}
int main()
{
int len(0), temp;
int *arr = new int[100];
char ch;
cout << "请输入要排序的数字,以空格隔开:";
while(1)
{
cin >> temp;
arr[len++] = temp;
cin.get(ch);
if (ch == '\n')
{
break;
}
}
InsertionSort(arr, len);
cout << "排序后的数字为:";
for (int i = 0; i < len; i++)
{
cout << arr[i] << " ";
}
cout << endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: