一 插入排序
1.概念
插入排序对于少量元素排序,是一种有效的算法。就像打纸牌一样,把每次摸到的纸牌放入恰当的位置,排好顺序。
2.算法思想
INSERTION_SORT(A) 1 for i=1 to A.len 2 temp=A[i] 3 j=i-1 4 while j>=0 and A[j]>temp 5 A[j + 1] = A[j] 6 A[j] = temp 7 j--
3.源码
#include <iostream> using namespace std; //打印数组 int SortPrint(int *arr, int num) { int i = 0; for (i = 0; i < num; i++) { cout << arr[i] << " "; } cout << endl; return 0; } //插入排序 void IsertionSort(int *arr, int num) { int temp = 0, i = 0, j = 0; for (i = 1; i < num; i++) { temp = arr[i];//取出第二个元素当标志 j = i - 1; while(j>=0 && arr[j] > temp) { arr[j + 1] = arr[j]; arr[j] = temp; j--; } } return ; } int main() { int i = 0, len; int array[6] = { 5, 2, 4, 6, 1, 3 }; //数组长度 len = sizeof(array) / sizeof(array[0]); cout << "The array's sort:" << endl; SortPrint(array, len); //插入排序 IsertionSort(array, len); cout << "The isertionsort array's sort:" << endl; SortPrint(array, len); system("pause"); return 0; }
输出结果:
The array's sort: 5 2 4 6 1 3 The isertionsort array's sort: 1 2 3 4 5 6