C++插入排序

C++插入排序

开发工具与关键技术:C++、VisualStudio
作者:何任贤
撰写时间:2019年07月25日

插入排序和冒泡排序有一点相似,但是它们是完全不同的两种排序方式,插入排序的方式是这样的,例如有一个三个元素的数组排序顺序是1,0,3我们是升序排序方式,元素1我们不管它,元素0我们就拿出来和元素1比较这时元素0比元素1小,元素1往后移一位,元素0放到元素元素1原来的位置,元素3在和元素1比较,3比1大就不需要再比。
下面是例子和结果截图
#include
using namespace std;
//插入排序算法(升序排列)
void insertionSort(int *array, int len);
//主方法
int main()
{
int arr[] = {0,1,4,7,2,5,8,3,6,9};
cout << “排序前:”;
for (int i = 0; i < 10; i++)
{
cout << arr[i];
}
cout << endl;
insertionSort(arr, 10);
cout << “排序后:”;
for (int i = 0; i < 10; i++)
{
cout << arr[i];
}
cout << endl;
return 0;
}
//插入排序算法(升序排列)
void insertionSort(int *array, int len)
{
// 存储基准数
int tmp = 0;
// 坑的位置
int index = 0;
// 遍历无序序列
for (int i = 1; i < len; ++i)
{
index = i;
tmp = array[i];
// 遍历有序序列(从后往前)
for (int j = i - 1; j >= 0; --j)
{
// 基准数根有序序列中的元素比较
if (tmp < array[j])
{
// 有序序列元素后移
array[j + 1] = array[j];
// 坑的位置
index = j;
}
else
{
break;
}
}
// 填坑
array[index] = tmp;
}
}
在这里插入图片描述
上面的那个基准数的意思就是第几个位置的数,坑的位置的意思就是基准数的位置,就有这两个所以这是插入排序而不是冒泡排序,上面i从1开始是因为插入排序是后面的和前面的比而不是前面的和后面的比,而比如说元素0是基准数,坑是2,当元素0比元素2小,那么元素2移到坑的位置,然后再更新坑的位置,再和元素1比还是小对吧,那么同样元素1移到坑的位置,然后元素0前面就没有元素了那么这一次内循环结束,i++后i=3了,基准数刷新,继续循环,这就是插入排序算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值