排序
文章平均质量分 56
番茄你个西红柿i
咸鱼一条.
展开
-
排序之归并排序
咳咳,排序算法到了归并排序就比较高级了,思想也就没有那么暴力了; 归并排序其实是利用了分治思想和递归思想。 主要思想 把等待排序的数列从中间那个数(其实不一定要中间)切断(二分嘛),变成两个数列,把这两个数列再分别从中间切断,一直切切切,直到每个数列只剩一个数,然后开始合并,把两个无序数列合并成一个有序数列,然后再把这个新数列去和别的数列合并,合并合并合并最终合并成为一个数列,这个数列就原创 2017-10-18 22:44:39 · 168 阅读 · 0 评论 -
排序之选择排序
书接上文,下面是选择排序。 选择排序是最容易想到也是最容易实现的排序方式。 *主要思想 n个元素的数组,每次从原数组中找到最小的一个元素,将这个元素加入新数组,再把这个元素从元数组中删除,就完成了一次选择。 经过n-1次选择后原数组中剩下一个元素,就是最大的一个元素,将他加入新数组里,就完成了选择排序。 这个代码就贴了,大家都懂,两层循环嘛。 选择排序是比较基原创 2017-10-17 08:05:40 · 167 阅读 · 0 评论 -
排序之插入排序
本人是纯正的蒟蒻。 写这些博客目的是为了复习一些基础知识,同时也帮助一下比我还要弱的蒟蒻(估计没有)。 排序 排序有很多种,这里先介绍几种最基本,最简单的。 一.插入排序( 主要思想:假设前面n个元素已经有序排列,现在要插入一个元素,使这n+1个元素有序,先在原有序列中找到应该插入的位置,然后把这个位置的数及其后面的数都往后移动一位,这样就空出了一个位置,这个位置就是我们要插入的位置。原创 2017-10-16 13:21:41 · 177 阅读 · 0 评论 -
排序之冒泡排序
好,下面是简单排序的最后一种:冒泡排序; 主要思想 假如有一串无序数列,我们要将它排序。 我们先设想一下它的有序情况,每个元素与其他元素之间是不是都有一些必然关系。 就像5和10在从小到大序列中,5是不是必然在10的左边,虽然我们不知道他们是否挨着或是中间隔了几个数,但我们肯定他们的相对位置必然是5在10左边,10在5右边。 那么冒泡排序就是根据这个原理。每个元素和他身边的元素比较,如果A原创 2017-10-17 13:05:09 · 186 阅读 · 0 评论 -
图论之拓扑排序
拓扑排序是根据先后顺序排序,而不是根据大小来排序。 在有向无环图中,点与点之间有单向边相连,这表明一种约束关系。 例如A到B有一条边,那么A到B就有约束关系。 拓扑排序就是基于多个点之间的约束关系,生成一条线性序列。 首先要明白两个概念: 入度:进入某一点的边数。 出度:从某一点出发的边数。 A到B,B的入度加一,A的出度加一。 先来看一道例题: 有N个士兵(原创 2017-12-28 09:12:38 · 402 阅读 · 0 评论