从数组第一个元素a[j]往前比较,如果比前一个数组元素a[j-1]大,就将该数组元素与a[j-1]交换位置。
#include <iostream> #include <string> using namespace std; void swap(int* a, int* b) { int tmp = *a; *a = *b; *b = tmp; } void print(int a[], int n) { for (int i = 0; i < n; i++) { cout << a[i] << " "; } } void InsertSort(int a[], int n) { for (int i = 1; i < n; i++) { for (int j = i; j > 0; j--) { if (a[j] < a[j - 1]) swap(&a[j],&a[j-1]); } } } int main() { int a[8] = { 3,4,2,1,6,0,9,5 }; InsertSort(a, 8); print(a, 8); }