算法
文章平均质量分 54
GermaW6
这个作者很懒,什么都没留下…
展开
-
排序算法(直接插入排序)
一、基本思路将数组的划分为已排序序列和为排序序列,每次挑选为排序序列的第一个,插入已排序序列中(实际操作起来是逐个交换)二、例子我们以{3,5,7,9,8,6,2,1,4,0}数组的排序为例子,将[0,0]作为已排序区间,[1,9]作为未排序区间,用 | 分隔,初始化 i 为0,如下 |3579862140第一趟:将 i 位置上的3插入到前面的区间,由于i为0,所以不作插入 ...原创 2018-07-16 11:39:08 · 216 阅读 · 0 评论 -
排序算法(直接选择排序)
一、基本思路 为什么我们要叫直接选择排序呢?在最开始的时候,待排序区间是整个数组,从区间选一个最小的与区间第一个交换位置,然后将待排序区间从第二个开始,继续以上操作,直至待排序区间长度为0 二、例子 我们还是以{3,5,7,9,8,6,2,1,4,0}为例 初始:3 5 7 9 8 6 2 1 4 0 第一趟:0 5 7 9 8 6 2 1 4 3 第二趟:0 1 7 9 8 6 2 ...原创 2018-07-16 22:30:28 · 271 阅读 · 0 评论 -
排序算法(堆排序)
一、基本思路 堆排序的规则在于构造最小堆或最大堆,其核心是对堆的调整(adjust),以最大堆为例,我们需要将待排序数组看成一个完全二叉树,它有以下特点,每个节点都大于它的任何子节点,符合这个条件的堆,就是最大堆,如 其对应的数组为 { 9,8,7,6,5,4,3,2 } 当我们拿到一个数组时,我们的最开始需要利用待排序区间构建一个最大堆,然后将堆顶的数,也就是当前待排序区间最大的数移到待排...原创 2018-07-17 14:13:42 · 228 阅读 · 0 评论 -
排序算法(希尔排序)
一、基本思路 希尔排序跟直接插入排序有点像,不同的一点是,直接插入排序的已排序序列的元素是相邻的,如 0,1,2,3, 7,8,5,6,4,9 中的前部分,而希尔排序的已排序序列的元素是间隔gap个的,如gap为2时,1, 9, 3, 5, 4, 7, 6, 2, 8 中的1 3 4 6 8,它的排序过程为:首先定义一个增量gap,以该增量为间隔分成多个即将进行插入排序的子序列,分别对这些...原创 2018-07-18 22:28:46 · 244 阅读 · 0 评论 -
排序算法(归并排序)
一、基本思路 首先,我们要了解一下归并这个名字的由来,其中,"归" 为递归,"并"为合并,意思是先递归后合并,递归其实是用了分治法这种思想,它将待排序数组分为两组,每一组又再分为两组,依次类推,直到最后一次只有一个,不再递归,将相邻的两组合并为比较大的一组,这个大的一组又与相邻的已经合并的同样大的那组再合并,直到最后合并成原来数组一样的大小,排序也就完成了,关于合并的过程看下面例子就可以啦 二...转载 2018-07-19 11:30:44 · 270 阅读 · 0 评论 -
约瑟夫环问题(循环链表实现)
一、问题背景 有30个人围成一个环,需要将其中的15个选出来杀掉,规则是,从第一个开始数1,把数到9的那个杀了,接着下一个重新从1开始数,如此循环,直到最后剩15个,这15个幸运儿的编号是分别是多少? 二、基本思路 一开始我想着用数组解决这个问题,然而发现用数组做太麻烦了,每次杀掉一个人,也就是删除一个节点都需要把后面的所有元素都往前移动,所以,我想到的用链表中的循环双向链表,这样一来,在删...原创 2018-07-20 11:44:14 · 576 阅读 · 0 评论 -
排序算法(快速排序)
一、基本思路1.在当前要排序的区间选择一个基准值x,并令i指向区间最左,j指向区间最右2.从该区间 j 的位置向左开始扫描,直到找到一个比基准值x小的, 将这个小的填到 i 的位置上,i++;3.从该区间 i 的位置向右开始扫描,直到找到一个比基准值x大的,将这个大的填到 j 的位置上,j--;4.重复2,3 直到 i 超过 j 或等于 j ,此时将基准值x填入a[ i ],至此,x左边的所有数都...原创 2018-07-15 15:56:33 · 271 阅读 · 0 评论 -
排序算法(冒泡排序)
一、基本思路冒泡排序的思路比较简单,为什么叫冒泡呢?它的思路就是从第一个开始,和第二个元素比较,如果比后面的元素大,则交换顺序,接着第二个和第三个比较,这样,一趟下来,数组中最大的元素就会像泡泡一样“冒”到最后的位置,第二趟,第二大的元素将会“冒”到倒数第二个位置,由此,只要经过n-1趟,数组就完成了排序。二、例子我们以{3,5,7,9,8,6,2,1,4,0}数组的排序为例子第一趟:冒泡区间1~...原创 2018-07-15 21:15:14 · 148 阅读 · 0 评论