![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
zxzzxz666
一个总把自己帅醒的人
展开
-
排序--归并排序
归并排序是典型的分治算法的例子,即先使每个子序列有序,再使子序列段间有序归并排序的时空复杂度1、归并排序的时间复杂度归并排序的平均时间性能O(nlogn) 。2、归并排序的空间复杂度归并排序的空间复杂度为:O(n)。算法思想 归并排序的算法我们通常用递归实现,先把待排序区间[s,t]以中点分,接着把左边子区间排序,再把右边子区间排序,最后把左区间和右区间用一次归并操作合并成有序的区间[s,t]。原创 2017-03-27 23:54:30 · 388 阅读 · 0 评论 -
排序--冒泡、选择、插入
三种简单排序1、冒泡排序时间复杂度 O(n²) 空间复杂度 O(1) 冒泡排序的基本思想是通过比较两个相邻的记录之间的比较和交换,使关键码比较小的继续逐渐从底部移向顶部(上升),关键码比较大的逐渐从顶部移向底部(沉底),冒泡由此得名。算法思想: 设有A[1]~A[n]的n个数据,冒泡排序的过程可以描述为: 1、首先将相邻的A[1]和A[2]进行比较,如果A[1]的值大于A[2]的值,则原创 2017-03-29 21:01:18 · 252 阅读 · 0 评论 -
排序--快速排序
快速排序-时空复杂度:时间复杂度快速排序每次将待排序数组分为两个部分: 1、在理想状况下,每一次都将待排序数组划分成等长两个部分,则需要logn次划分。 2、在最坏情况下,即数组已经有序或大致有序的情况下,每次划分只能减少一个元素, 快速排序将不幸退化为冒泡排序,最坏情况为O(n^2)。 快速排序的平均时间复杂度为O(nlogn)。空间复杂度快速排序在对序列的操作过程中只需花费常数原创 2017-03-27 00:16:06 · 457 阅读 · 0 评论 -
最短路径的两种算法
最短路径问题的简单描述: 有N个城市,每两个城市之间有一个权值(i –>j 和 j –>i 不同),求两个城市之间权值最小的路径。存储格式: 1、我们需要一个N*N的数组e[N][N]来存储各个城市之间的权值,e[i][j]表示从i 到 j 的权值。 2、#define inf 99999999 //定义一个我们认为正无穷的值表示两个城市之间不直接相连。 3、城市自己到自原创 2017-04-03 18:03:12 · 2064 阅读 · 0 评论 -
8皇后问题
八皇后问题是典型的在解空间中深度优先递归搜索,遍历解空间树,寻找问题的所有解的问题。是回溯法(深度优先搜索)算法的典型例子。 深度优先搜索算法(DFS)的算法框架: Proc If (当前节点是目标结点) Then { output() } Else { for(对于所有可能的新结点) search(新原创 2017-04-06 18:32:35 · 1370 阅读 · 0 评论