
算法
Boyikia
这个作者很懒,什么都没留下…
展开
-
字典序算法
字典序算法字典序就是按照字典中出现的先后顺序进行排序单个字符在计算机中,25个字母以及数字字符,字典排序如下:字母 : ABCDE~XYZ数字:12345678~多个字符两个字符串比较大小,是按照从左到右的顺序进行比较,如果第1位相等,就比较第2位,直至有一位可以比较出大小来,则不再继续比较。全排列的字典给定多个字符或者字符,可以按照任意顺序进行排列,所有排列称为全排列。...原创 2020-02-21 19:33:59 · 1290 阅读 · 0 评论 -
选择排序
选择排序算法原理 : 第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。 public static void sort(int[] datas){ //第一轮循环是 选择设置对应位置的数据 ...原创 2020-02-18 14:18:33 · 269 阅读 · 0 评论 -
桶排序
桶排序桶排序是一种线性时间排序算法。类似于计数排序所创建的统计数组,桶排序需要创建若干个桶协助排序。步骤1.确定桶数,确定桶的区间范围;2.遍历原始数据,把元素对号入座放入各个桶里;3.堆每个桶内部元素分别进行排序;4.遍历所有桶,一次输出所有元素; public static float[] bucketSort(float[] datas){ float m...原创 2020-02-17 22:38:50 · 142 阅读 · 0 评论 -
计数排序
计数排序计数排序,是利用数组下标来确定元素的正确位置。基本算法对于 序列 {2, 1, 2, 3, 7, 9, 0, 7, 8, 6, 5},元素的取值范围 是【0,9】。因此,可以采用空间置换时间的想法,定义一个长度为10的数组C,这样可以保证 序列中的元素值 ,可以依次对应到 数组的下标中。通过遍历序列,我们可以将序列中元素出现的次数依次 定义到数组C中 。出现次数1...原创 2020-02-17 19:29:54 · 531 阅读 · 0 评论 -
堆排序
堆排序指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点二叉堆的知识点原理:不管是最大堆还是最小堆,通过若干 将堆顶元素 和 有效 尾部元素替换,重新调整生成新的堆顶的过程。 每个过程,都是将堆顶(最大或最小值) 移动到数组 的尾部,因此。当所有堆顶元素都置换到 集合的尾部时。集合则是一个和堆相...原创 2020-02-16 00:19:51 · 124 阅读 · 0 评论 -
二叉堆
二叉堆堆堆,本质上是一种完全二叉树。分为,最大堆和最小堆。 它的物理存储结构是 数组。因此:左孩子节点的 索引值= 它的父节点索引值2+1;右孩子节点的索引值=它的父节点索引值2+2;堆的分类最大堆: 任何一个父节点的值都大于或等于它的左右孩子节点的值。最小堆:任何一个父节点的值都小于或等于它的左右孩子节点。二叉堆的构建把一个无序的完全二叉树调整为二叉堆。本质...原创 2020-02-15 22:33:47 · 119 阅读 · 0 评论 -
快排算法
快排算法快速排序(Quicksort)是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。简而言之,快排算法,就是我们常说的二分法。 通过基准值,将数字序列 分为 小于临界值的部分,和大于临界值的部分...原创 2020-02-14 23:16:28 · 913 阅读 · 0 评论 -
冒泡排序
冒泡排序冒泡排序:1.在一组无序的数字序列中,通过从序列的开始到结尾,相邻的的元素进行两两比较,当元素大于右侧的元素的时候,交换彼此的位置。最终经过每轮比较可以将数字大的数字移动到数列的尾部。2. 每轮的比较结果,都会确定出对应的有序区长度。例如:经过第一轮比较,我们,我们可以确定出序列的最大值(有序区长度 =1) ,经过第二轮比较,可以确定出第二大的值(有序区长度=2),第三轮确定出 第...原创 2020-02-13 19:50:29 · 384 阅读 · 0 评论 -
二叉树遍历(递归 +迭代)
二叉树的遍历二叉树——是一种 典型的非线性 数据结构。 而 在计算机程序中,遍历本身是一种线性操作。因此,二叉树的遍历,本质是非线性关联的节点转换成 一个线性 的序列,再 进行线性遍历。遍历类型深度遍历前序遍历(根-> 左-> 右)中序遍历( 左->根-> 右)后续遍历( 左-> 右->根)广度遍历层序遍历(一层一层的 遍历)...原创 2020-02-11 19:46:12 · 259 阅读 · 0 评论