摘要: 计数排序是一种稳定的排序算法,它不是比较排序。计数排序是有条件限制的:排序的数必须是n个0到k的数,所以计数排序不适合给字母排序。计数排序时间复杂度:O(n+k),空间复杂度:O(k),当k=n时,时间复杂度可以达到O(n)。计数排序思想:给定一个符合规定的无序数组,先求出这个数组中最大的数,... 阅读全文
posted @ 2014-07-03 20:40 风xmx 阅读(563) 评论(0) 推荐(0) 编辑
摘要: 快速排序是对冒泡排序算法的一种改进型算法,而且快速排序也采用了分治法的思想。快速排序是不稳定排序,平均时间复杂度为:O(n*logn),最坏时间复杂度为:O(n*n),空间时间复杂度:O(logn),但快速排序通常是用于排序的最佳实用的选择。 快速排序的思想:从这段数组选取一个数(通常是第... 阅读全文
posted @ 2014-07-03 20:36 风xmx 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 堆数据结构是一种数组对象,它可以被视为一棵完全二叉树。时间复杂度为:O(n*logn),空间复杂度:O(1);平均时间复杂度和最坏时间复杂度都为:O(n*logn),但堆排序是不稳定排序。堆排序思路: 1.建立小堆:把堆看成一个完全二叉树,然后从这棵树的最后一个非叶子节点开始,... 阅读全文
posted @ 2014-07-03 20:34 风xmx 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 一,归并排序 归并排序是建立在归并操作上的一种排序算法,它采用了分治法的思想,是一种稳定的排序算法,而且归并排序的速度仅次于快速排序。时间复杂度:O(n*logn),最坏的情况:O(n*logn),空间复杂度:O(n)。从数据就可以看出:归并排序比快速排序快很多,同样为稳定排序。 ... 阅读全文
posted @ 2014-07-03 20:33 风xmx 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 作为排序算法的一种,插入排序是稳定排序。它的时间复杂度:O(n*n),空间复杂度为:O(1)。最好的时间复杂度为:O(n),最坏和平均则为:O(n*n)。 算法的思想:给定一组无序的数组,我们从它的第二个数开始,并将它赋值给mark变量(mark变量就是要插入到其他位置去的数),让mark和... 阅读全文
posted @ 2014-07-03 20:30 风xmx 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 建立一个有向图的邻接表,首先要构思好它的邻接表里面包含哪些结构数据,然后根据哪些数据来建立相应的结构体。但也要注意数据的输入。#include #include #define MAX_SIZE 10typedef struct ArcNode //弧节点结构体{ ... 阅读全文
posted @ 2014-07-03 20:27 风xmx 阅读(2290) 评论(0) 推荐(0) 编辑