标签:设置 实现 插入排序 比较 依次 color -- 序列 nbsp
直接插入排序是一种非常简单的排序,基本思想是:依次将带排序序列中的每一个记录插入到一个以排序好的序列中,直到全部记录都有序。
在这个过程中,为了减少比较次数,在数组0下标位置设置一个哨兵。
直接插入排序简单直观,但是效率较低,时间复杂度为O(n2),因为需要一个哨兵,所以空间复杂度为O(1)。
下面是实现代码:
#include<iostream> using namespace std; int main() { int r[100]; int n; cin>>n; for(int i=1; i<=n; i++) cin>>r[i]; for(int i=1; i<=n; i++) { r[0]=r[i]; int j; for(j=i-1; r[0]<r[j]; j--) { r[j+1] = r[j]; } r[j+1]=r[0]; } for(int i=1; i<=n; i++) cout<<r[i]<<" "; return 0; }
标签:设置 实现 插入排序 比较 依次 color -- 序列 nbsp
原文地址:http://www.cnblogs.com/magicalzh/p/7928584.html