插入排序
来源:互联网 发布:三类医疗器械软件价格 编辑:程序博客网 时间:2024/05/16 07:26
一、直接插入排序
#include<iostream>using namespace std;class Insert_sort{private:int *a;int n;public:Insert_sort(){}Insert_sort(int N){a=new int[N];n=N;}void get(){int i;for(i=0;i<n;i++)cin>>a[i];}void sort(){int i,j;for(i=0;i<n;i++){j=i;int temp=a[i];while(j>0&&temp<a[j-1]) {a[j]=a[j-1];j--;}a[j]=temp;}}void print(){int i;for(i=0;i<n;i++)cout<<a[i]<<" ";cout<<endl;}};int main(){int i,n;while(cin>>n){Insert_sort a(n);a.get();a.sort();a.print();}return 0;}
时间复杂度:o(n*n)
空间复杂度:o(1)
是一种稳定排序
二、二分插入排序(折半插入排序)
是直接插入排序的改进版
#include<iostream>using namespace std;class Insert_sort{private:int *a;int n;public:Insert_sort(){}Insert_sort(int N){a=new int[N];n=N;}void get(){int i;for(i=0;i<n;i++)cin>>a[i];}void sort(){int i,j;for(i=0;i<n;i++){int left=0,right=i-1;int temp=a[i];while(left<=right){int mid=(left+right)/2;if(temp>a[mid])left=mid+1;else right=mid-1;}for(j=i;j>left;j--)a[j]=a[j-1];a[left]=temp;}}void print(){int i;for(i=0;i<n;i++)cout<<a[i]<<" ";cout<<endl;}};int main(){int i,n;while(cin>>n){Insert_sort a(n);a.get();a.sort();a.print();}return 0;}
时间复杂度:o(n*n)
空间复杂度:o(1)
是一种稳定排序
是直接插入排序算法的一种更高效的改进版
#include<iostream>using namespace std;class Shell_sort{private:int *a;int n;public:Shell_sort(){}Shell_sort(int N){a=new int[N];n=N;}void get(){int i;for(i=0;i<n;i++)cin>>a[i];}void sort(){int step=n/2,i,j;while(step>0){for(i=step;i<n;i++){int temp=a[i];for(j=i-step;j>=0&&temp<a[j];j-=step){a[j+step]=a[j];}a[j+step]=temp;}step/=2;}}void print(){int i;for(i=0;i<n;i++)cout<<a[i]<<" ";cout<<endl;}};int main(){int i,n;while(cin>>n){Shell_sort a(n);a.get();a.sort();a.print();}return 0;}
时间复杂度:不会算
空间复杂度:o(1)
是一种不稳定排序
0 0
- 插入排序-【插入排序】
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 安卓开发之IPC机制
- 8款超酷的HTML5 3D图片动画源码
- linux下TCP编程示例(服务端/客户端)
- android中对sim卡联系人的增删改查以及监听sim卡联系数据的改变
- SDUT 数据结构实验之查找七:线性之哈希表
- 插入排序
- Android Activity生命周期 举例说明
- 实战ffmpeg2.8.3+X264的编译
- 常见的广告切换动画
- 虚拟化简单练习环境搭建(一)
- bzoj1003[ZJOI2006]物流运输trans
- SDUT 数据结构实验之查找六:顺序查找
- JS
- CSS position 属性