排序算法总结(三)插入排序
2013-09-13 16:10
274 查看
插入排序的原理是从数组的某个位置开始依次和前面的位置数相比,找到插入位置,将数插入到该位置,这样多次插入后,得到的将是一个有序数组。
参考代码:
插入排序是稳定的排序,需要一个辅助空间,最好的情况下数组是有序的只要扫描一次时间复杂度为O(n), 最坏的情况下数组是待排序的逆序,时间复杂度为O(n2)
参考代码:
#include <iostream> using namespace std; void InsertSort(int *arrays,int len); int main(void) { int i; int arrays[]={9,8,7,6,5,4,3,2,1}; InsertSort(arrays,9); for (i=0;i<9;i++) { cout << arrays[i] <<" "; } cout <<endl; return 0; } void InsertSort(int *arrays,int len) { int i,j,k; int tmp; for (i=1;i<len;i++) { j=i-1; while (arrays[i]<arrays[j] && j>=0) { j--; } tmp=arrays[i]; for (k=i;k>j+1;k--) { arrays[k]=arrays[k-1]; } arrays[j+1]=tmp; } }
插入排序是稳定的排序,需要一个辅助空间,最好的情况下数组是有序的只要扫描一次时间复杂度为O(n), 最坏的情况下数组是待排序的逆序,时间复杂度为O(n2)
相关文章推荐
- 排序算法总结(一)---- 直接插入排序,希尔排序(java实现)
- 排序算法总结(一)插入排序【Insertion Sort】
- 排序算法总结(2)--插入排序
- 排序算法总结(冒泡排序、直接插入排序、希尔排序)(python实现)
- 【排序算法总结】直接插入排序
- 排序算法总结---直接插入排序
- 排序算法总结(一)——冒泡、插入、希尔与选择排序
- 数据结构与算法:七种排序算法总结(冒泡排序、选择排序、直接插入排序、希尔排序、堆排序、归并排序、快速排序)
- 排序算法总结之直接插入排序
- 排序算法总结---直接插入排序
- 排序算法总结3-插入排序
- 笔试面试系列---排序算法专辑---直接插入排序---错误答案纠正
- 经典排序算法--插入排序
- Java实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等
- 排序算法总结---交换排序之快速排序
- 排序算法之简单插入排序
- 一步一步解析JAVA排序算法--插入排序
- 排序算法之直接插入排序
- 四基础排序算法:插入排序、选择排序、冒泡排序、快速排序
- 插入排序是基本排序算法中最好的一种,虽然插入排序也是需要O(N^2)时间,但它比冒泡排序快一倍,比选择排序还要快点。