算法学习之旅,中级篇(2)-–插入排序
来源:互联网 发布:提醒功能的软件 编辑:程序博客网 时间:2024/06/05 22:50
介绍
每次从无序表中取出第一个元素,把它插入到有序表中的合适位置。
分析
第一趟:比较前两个数的大小,然后把其中最小的插入排在第一个位置。
第二趟:比较第三个数与前两个数的大小,大的数后移,知道遇到小的,便插入到较小数的后面,数不再移动。
依次进行,进行了N-1躺后,就完成了整个排序过程。
代码
#include<iostream>using namespace std;void print(int a[],int n){ for(int j=0;j<n;j++) cout<<a[j]<<" "; cout<<endl; return;}void insert_Sort(int array[],int n){ for(int i=1;i<n;i++) { if(array[i]<array[i-1]) { int temp=array[i]; int k=i-1; for(int j=k;j>=0&&temp<array[j];j--) { array[j+1]=array[j]; k--; } array[k+1]=temp; } }}int main(){ int a[8]={3,2,4,5,7,1,2,9}; cout<<"初始值: "; for(int j=0;j<8;j++) cout<<a[j]<<" "; cout<<endl<<endl; insert_Sort(a,8); print(a,8); system("pause"); return 0;}
遇到的问题
插入排序是稳定的排序算法。最坏的时间复杂度是逆序o(n^2)。
阅读全文
0 0
- 算法学习之旅,中级篇(2)-–插入排序
- 算法学习之旅,中级篇(1)-–选择排序
- 算法学习之旅,中级篇(3)-–冒泡排序
- 算法学习之旅,中级篇(4)-–快速排序
- 算法学习之排序算法:插入排序(直接插入排序、折半插入排序、2-路插入排序)
- 算法学习之旅,中级篇(8)-–分治之二分搜索(递归)
- 算法学习之旅,中级篇(5)-–递归之杨辉三角
- 算法学习之旅,中级篇(6)-–递归之斐波拉契数列
- 算法学习之旅,中级篇(7)-–递归之汉诺塔
- 算法学习之路(插入排序)
- 排序算法-中级篇(归并排序)
- 算法学习之:插入排序
- 算法学习之插入排序
- 排序算法-中级篇
- 经典算法学习:排序之插入排序
- 算法学习之排序(1)--插入排序
- [学习笔记]排序算法之插入排序
- 算法学习笔记之插入排序算法
- java中动态的读取src下面的配置文件,动态的读取同个包下面的配置文件。
- 20170818
- Splay模板
- 如何用Python写一个贪吃蛇AI
- 【Django 初学】 -- 配置Mysql
- 算法学习之旅,中级篇(2)-–插入排序
- 创建模式之单例模式
- 代码乱搞
- Bootstrap实例1---简介与配置
- cx_F reeze 压缩py项目
- hdu4018
- -----hdu 2612 Find a way
- 二次封装OKHttp网络框架(1)
- Java中HashMap的实现原理