直接插入排序
Posted 潇湘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了直接插入排序相关的知识,希望对你有一定的参考价值。
直接插入排序是一种非常简单的排序,基本思想是:依次将带排序序列中的每一个记录插入到一个以排序好的序列中,直到全部记录都有序。
在这个过程中,为了减少比较次数,在数组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; }
以上是关于直接插入排序的主要内容,如果未能解决你的问题,请参考以下文章
直接插入排序 ,折半插入排序 ,简单选择排序, 希尔排序 ,冒泡排序 ,快速排序 ,堆排序 ,归并排序的图示以及代码,十分清楚