推荐慕课网,刘宇波老师《算法与数据结构》 链接:http://coding.imooc.com/class/71.html insertionSort 课堂笔记 #include <iostream> using namespace std; void swap(int &a,int &b) { int t = a; a = b; b = t; } template<typename T> void insertionSort(T arr[],int n) { for(int i = 1;i < n;i++) for(int j = i;j>0 && arr[j] < arr[j-1];j--) swap(arr[j],arr[j-1]); } int main(){ int arr[] = {9,8,7,6,5,4,3,2,1}; int n = sizeof(arr)/sizeof(arr[0]); insertionSort(arr,n); for(int i = 0;i<n;i++) printf("%d ",arr[i]); printf("\n"); return 0; } /* insertion optimize(优化) */ template<typename T> void insertionSort2(T arr[],int n){ for(int i = 1;i < n;i++){ T e = arr[i]; int j; for(j = i;j>0 && arr[j-1]>e;j--) arr[j] = arr[j-1]; arr[j] = e; } }