C++模板实现直接插入排序
来源:互联网 发布:东方挂馅炒饭 知乎 编辑:程序博客网 时间:2024/06/02 06:09
排序是数据结构中的重要章节.涉及到多种排序算法.本小节讲述直接插入排序的算法及实现.
直接插入排序的思想是,插入的元素插入到一个已经排列有序的数组中,从数组末尾开始进行比较,如果发现插入的数小于被比较的数,则两数交换位置,直到没有发生交换,算法终止.
算法是稳定的,时间复杂度为O(n2),空间复杂度为O(n2),内部排序,不需要额外空间.
//Dierect Insert Sort//1. Stable//2. Compare times will different as original sequence different, O(n2)//3. Move times will different as original sequence different, O(n2)//4. Terminate condition: inner loop, new value not small than compared valuetemplate<typename T>void Sort<T>::directInsertSort(T* const sortArray, const unsigned int size){ for (unsigned int i = 0; i < size; i++) { T flag = sortArray[i]; for (unsigned int j = i - 1; j >= 0; j--) { loopTimes++; if (flag < sortArray[j]) { sortArray[j + 1] = sortArray[j]; sortArray[j] = flag; moveTimes++; } else { break; } } }}
程序运行结果如下:
0 0
- C++模板实现直接插入排序
- C语言实现直接插入排序
- 直接插入排序(C语言实现)
- 直接插入排序Linux下c 实现
- 直接插入排序C语言实现
- C语言实现直接插入排序
- 直接插入排序算法--c语言实现
- 【算法】直接插入排序C语言实现
- C语言实现直接插入排序
- 数据结构 C语言实现直接插入排序
- 直接插入排序的c语言实现
- C语言实现直接插入排序
- 直接插入排序C语言实现
- 直接插入排序(C语言)实现
- c++ 模板实现 -- 直接插入排序和归并排序
- C直接插入排序
- 直接插入排序.c
- (排序)用C语言实现的直接插入排序
- 线程安全和可重入函数
- 一个用于简化其他“类”创建的基“类”及其使用
- Ubuntu sublime Text3 中文输入
- rubygems/core_ext/kernel_require.rb:120:in `require': cannot load such file -- colored2 (LoadError)
- Wdatepicker日期控件的使用指南
- C++模板实现直接插入排序
- HDU_1495 非常可乐
- 进程间通讯之信号量(实例)
- Apache
- AndroidManifest.xml文件详解(application)
- lintcode二叉树的层次遍历
- 使用AysnTask进行图片的异步缓存
- 设计模式之工厂模式学习笔记
- 【GDSOI2017模拟】奶酪