
数据结构与算法
罗马骑士
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
排序算法总结(二)——快速排序、归并排序
快速排序排序思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。其中,个人认为如何将数据按key排放这一步骤最为重要,理解了这里,整个算法应该就明白了。排序实例:49 38 65 97 76 13 27进行第一次交换后:27 38 6原创 2013-05-05 18:40:04 · 1369 阅读 · 0 评论 -
排序算法总结(一)——冒泡、插入、希尔与选择排序
在讨论排序方法时,经常会涉及两个基本概念,一是时间复杂度,二是算法的稳定性。在单独讲解每个排序算法之前,我们先来明白这两个概念。时间复杂度: 一般来说,时间复杂度是总运算次数表达式中受n的变化影响最大的那一项(不含系数)。排序算法的稳定性: 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,则称这种排序算法是原创 2013-05-05 18:16:14 · 1294 阅读 · 0 评论 -
遗传算法介绍
一、遗传算法介绍 1.1 遗传算法概要 遗传算法(Genetic Algorithm,简称GA)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法,由美国的J.Holland教授1975年首先提出。遗传算法是一种模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,通过模拟自然进化过程搜索最优解,它常用来解决多约束条件下的最优问题。转载 2013-05-20 19:03:47 · 5361 阅读 · 0 评论 -
排序算法总结(三)——堆排序、桶排序
堆排序排序思想:主要有3个步骤,建立小顶堆(或大顶堆)、删除堆顶数据(删除的数据就是排序的数据)、重新调整为小顶堆。具体可参照MoreWindows的博客《白话经典算法系列之七 堆与堆排序》,文中对堆排序的过程讲解的十分详细,下面堆排序的代码也摘自该Blog。是否稳定:不稳定。时间复杂度:堆排序的最坏时间复杂度为O(nlogn)。堆序的平均性能较接近于最坏性能。//调整堆voi原创 2013-05-08 11:30:37 · 3454 阅读 · 0 评论