插入排序的主要思想是:将第一个元素看做有序,从第二个元素起将待排序的元素插入到有序的序列中,使有序的序列逐渐扩大,直到所有元素都插入到有序序列中。
代码:
#include<iostream>
using namespace std;
void insertSort(int num[],int n) {
int temp,j; //临时变量
for (int i = 1; i < n; i++) {
temp = num[i]; j = i - 1;
while (j >= 0 && temp < num[j]) {
num[j + 1] = num[j];
j--;
}
num[j + 1] = temp;
}
}
void main(){
int num[12] = { 10,6,2,33,15,12,23,76,1,54,22,9 };
insertSort(num, 12);
for (auto x : num) {
cout << x << " ";
}
cout << endl;
system("pause");
}
优化算法:
void insertSort2(int num[], int n) {
int temp,j;
for (int i = 1; i < n; i++) {
temp = num[i]; j = i - 1;
while (temp < num[j]) {
num[j + 1] = num[j];
j--;
}
num[j + 1] = temp;
}
}