数据结构&&算法
Jmark_GC
乐观开朗,学习能力强,热衷于web开发技术
展开
-
希尔排序
希尔排序(Shell Sort)又称为缩小增量排序,输入插入排序算法,是对直接插入排序算法的一种改进。本文介绍希尔排序算法。 对于插入排序算法来说,如果原来的数据就是有序的,那么数据就不需要移动,而插入排序算法的效率主要消耗在数据的移动中。因此可知:如果数据的本身就是有序的或者本身基本有序,那么效率就会得到提高。 希尔排序的基本思想是:将需要排序的序列划分成为若干个较小的子序列,对原创 2012-10-04 20:50:20 · 520 阅读 · 0 评论 -
floyd和warshall算法(作业)
floyd算法的实现: #include #include int n, dist[10][10]; //矩阵中的数字:999表示不可达,无穷大 void printDist(); void floyd() //floyd实现算法 { int原创 2012-08-31 22:54:39 · 675 阅读 · 0 评论 -
c语言实现各种排序算法(作业:点名册排序)
1.堆排序 #include struct sheet //结构体 { int number; char *name; }; void printer(sheet pupil[],int n)原创 2012-08-31 22:54:27 · 1578 阅读 · 0 评论 -
插入排序
有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。 插入算法基本思想:把要排序的数组分成两部分:第一部分包含了这个数组的所有元素原创 2012-10-04 20:56:38 · 640 阅读 · 0 评论 -
[经典排序算法][集锦]
经典排序算法 经典排序算法,以下文章参考了大量网上的资料,大部分都给出了出处 这一系列重点在理解,所以例子什么的都是最简单的情况,难免失误之处,多指教 大多数排序算法都给出了每一步的状态,以方便初学者更容易理解,通俗易懂,部分难以理解的排序算法则给出了大量的图示,也算是一个特色吧 经典排序算法 - 快速排序Quick sort 经典排序算法 - 桶排序Bu转载 2012-11-05 13:16:12 · 764 阅读 · 0 评论 -
Java排序算法总结(六):堆排序
堆积排序(Heapsort)是指利用堆积树(堆)这种资料结构所设计的一种排序算法,可以利用数组的特点快速定位指定索引的元素。堆排序是不稳定的排序方法,辅助空间为O(1), 最坏时间复杂度为O(nlog2n) ,堆排序的堆序的平均性能较接近于最坏性能。 堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(或最小)关键字的记录变得简单。转载 2013-03-05 12:54:16 · 646 阅读 · 0 评论 -
求子数组的最大和
求子数组的最大和 题目描述: 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2, 因此输出为该子数组的和18。 思路 1 当我们加上转载 2013-03-26 14:37:12 · 713 阅读 · 0 评论