插入排序的依据:当遍历到第n个元素时,前面的n-1个元素已经是排好序了的,然后通过查找前n-1个元素,将第n个元素插入到前n-1个元素中适当的位置。 #include "stdafx.h" #include<iostream> #include<iomanip> using std::setw; using std::cout; using std::endl; void insert(int a[],int n) { int i,j,k; for(i=1;i<n;i++) { k=a[i]; for(j=i-1;j>=0&&a[j]>k;j--) { a[j+1]=a[j]; } a[j+1]=k; } } int _tmain(int argc, _TCHAR* argv[]) { int arr[8]={47,33,61,82,72,11,25,47}; insert(arr,8); return 0; } 插入排序的基本特征: 插入排序时稳定的和冒泡排序一样,在对逆序记录排序时性能最差,但是对于几乎有序的记录排序时则具有线性的性能