您的位置:首页 > 编程语言 > C语言/C++

插入排序InsertionSort(C++实现)

2017-10-21 08:44 302 查看
如果你想要对很多排序算法都有一个了解,可以点这里

如果你对用MIPS汇编语言实现插入排序,可以点这里

这是C++代码实现

// insertion sort
#include <iostream>
using namespace std;
//非降序
void insertionSort(int* s, int n) {
for (int i = 1; i < n; ++i) {
//s[0]默认排好了
int key = s[i];//记录key值
int j = i - 1;
while (j >= 0 && s[j] > key) // 移动到最顶端或小于等于的key
s[j + 1] = s[j--];
s[j + 1] = key;
}
}

//非升序
void insertionSort(int* s, int n) {
for (int i = 1; i < n; ++i) {
//s[0] 默认排好了
int key = s[i];
int j = i - 1;
while (j >= 0 && s[j] < key)
s[j + 1] = s[j--];
s[j + 1] = key;
}
}

int main(){
int a[] = {1,5,3,2,1};
insertionSort(a, 5);
for (int i = 0; i < 5; ++i) {
cout << a[i]<<" ";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: