算法学习_排序
来源:互联网 发布:淘宝中和银座瑞士名表 编辑:程序博客网 时间:2024/05/20 04:11
插入排序
假定集合有序,待插入集合新值与集合进行比较,寻找合理位置,如果找到,合理位置之后的元素顺序向后面移动一位,新元素插入到寻找的位置。插入排序是效率很差的一种排序,最差情况下集合为逆序,每插入一个元素,就要将原有序集合全部移动,存在大量的比较和负值操作,时间复杂度为O(n2)
合并排序
将一个集合递归分解为一个个小的集合,最终分解成单元素的集合,集合放到堆空间中,在递归调用函数的时候,只需要传递集合的内存句柄,在递归层数过多的情况下,临时的栈空间开辟较多,合并排序操作大多在临时空间中进行的,每次递归子程序结束之后,结果都会在原集合中表现出来,合并的粒度标记通过递归来实现,时间复杂度为O(nlogn).
堆排序
堆排序可以使用在线性结构上面,此算法有3个基本的子程序:
<1> MAX-HEAPIFY(A,i)使得以i为根的子树成为最大堆。
<2>BUILD-MAX-HEAP(A)使序列A构件为最大堆
<3>HEAPSORT(A) 堆排序
快速排序
- 算法学习_排序
- 数据结构排序算法_选择排序算法学习
- 数据结构排序算法_起泡排序算法学习
- 算法导论_计数排序学习笔记
- 排序_算法_数据结构
- 排序_查找算法
- C# 算法_排序
- 算法_选择排序
- 算法_选择排序
- 算法_插入排序
- 排序算法_快速排序
- 排序算法_计数排序
- 排序算法_冒泡排序
- 排序算法_快速排序
- 排序算法_堆排序
- 排序算法_希尔排序
- 排序算法_归并排序
- 快速排序_排序算法
- js页面跳转整理
- Tomcat中jar文件的秘密
- ExtJs之Panel篇
- 如何编译MFC程序
- VC中#ifdef与#pragma once避免重复包含的区别
- 算法学习_排序
- JavaScript应用技巧-控制窗口大小
- gef selectiontool selectioneditpolicy
- Javascript中的常见排序算法
- ACE中TCP通信
- MFC学习一
- Google Wave失败带来的教训
- vc下动态改变鼠标光标
- 计算机组成