
算法
# 算法
阿呆布衣酷
纯干货学习笔记:无盈利目的,只想帮自己成长
展开
-
基数排序(Radix Sort)
基数排序(Radix Sort)学习:第7遍1.排序原理是什么???基数排序是这样实现的:将所有待比较数值统一为同样的数字长度,数字较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后,数列就变成一个有序序列。2.代码public static void main(String[] args) { int[] array = {3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48}原创 2020-09-10 01:13:58 · 240 阅读 · 0 评论 -
桶排序(Bucket Sort)
桶排序(Bucket Sort)学习:第7遍1.排序原理是什么???假定有1-100个编号的桶(既定义一个长度为100的整型一维数组),每输入一个数字·就在对应的桶上插一个小旗(也就是对应下标的桶加1次),如果这个数字出现了n次就在对应桶上插n个小旗,当所有数输入完毕时,只需要从下标1开始找那些数字是1,如果是1就打印1次,是2就打印2次,是多少就打印多少次2.代码public static void main(String[] args) { int[] array = {3, 44原创 2020-09-10 01:11:04 · 492 阅读 · 0 评论 -
计数排序(Counting Sort)
计数排序(Counting Sort)学习:第7遍1.排序原理是什么???计数排序又称为鸽巢原理,是对哈希直接定址法的变形应用。和其他排序不一样,计数排序并不是通过比较元素的大小来实现的,而是通过统计所有相同元素出现的次数来进行排序,思路与其他的排序大有区别。遍历整个数列,选择出最大值和最小值申请一个辅助空间并置空,空间大小由数据的范围决定统计每个数字出现的次数最后把数字一个一个的赋值到原来的数组里面2.代码public static void main(String[] args)原创 2020-09-10 01:04:42 · 258 阅读 · 0 评论 -
堆排序(Heap Sort)
堆排序(Heap Sort)学习:第7遍1.排序原理是什么???将待排序序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆,这样会得到n个元素的次小值。如此反复执行,便能得到一个有序序列了。构建初始堆。一般升序采用大顶堆,降序采用小顶堆。从第一个非叶子结点从下至上,从右至左调整结构;交换堆顶元素和末尾元素,使最大值沉到数组末尾,重新调整堆结构,使其满足定义;然后继续交换堆顶元素与当前末尾元素,反复执行原创 2020-09-10 01:01:13 · 145 阅读 · 0 评论 -
快速排序(Quick Sort)
快速排序(Quick Sort)学习:第7遍1.排序原理是什么???快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。2.代码public static void main(String[] args) { i原创 2020-09-10 00:57:29 · 149 阅读 · 0 评论 -
快速排序(Quick Sort)
快速排序(Quick Sort)学习:第7遍1.排序原理是什么???**快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。**2.代码public static void main(String[] args) {原创 2020-09-10 12:40:02 · 224 阅读 · 0 评论 -
归并排序(Merge Sort)
归并排序(Merge Sort)学习:第7遍1.插入排序原理是什么???归并排序也是排序算法的一种,它是将两个已经排好序的数组,合并成另一个排好序的数组,原理是这样的:定义一个新数组,再定义两个指针,分别指向两个已经排好序的数组的第一个元素,然后两者进行比较,较小的那个数放到新定义的那个数组的第一个位置,同时,将较小的那个数的下标加1,再跟刚刚比他大的那个数比较,两者中较小的数就放到新数组里面,最后比较完之后,若其中一个数组有剩余的元素没有比较,就将剩余的元素直接插入到新数组中。 听起来有些原创 2020-09-10 00:54:02 · 1438 阅读 · 0 评论 -
希尔排序(Shell Sort)
希尔排序(Shell Sort)学习:第7遍1.插入排序原理是什么???希尔排序是将待排序的数组元素按下标的一定增量分组 ,分成多个子序列,然后对各个子序列进行直接插入排序算法排序;然后依次缩减增量再进行排序,直到增量为1时,进行最后一次直接插入排序,排序结束2.代码public static void main(String[] args) { int[] array = {3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 5原创 2020-09-10 00:50:10 · 160 阅读 · 0 评论 -
插入排序(Insertion Sort)
插入排序(Insertion Sort)学习:第7遍1.插入排序原理是什么???从第一个元素开始,该元素可以认为已经被排序;取出下一个元素,在已经排序的元素序列中从后向前扫描;如果该元素(已排序)大于新元素,将该元素移到下一位置;重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;将新元素插入到该位置后;重复步骤2~52.代码public static void main(String[] args) { int[] array = {3, 44, 38, 5, 47,原创 2020-09-10 00:47:46 · 198 阅读 · 0 评论 -
选择排序(Selection Sort)
选择排序(Selection Sort)学习:第7遍1.选择排序原理是什么???算法思想:选择排序,从头至尾扫描序列,找出最小的一个元素,和第一个元素交换,接着从剩下的元素中继续这种选择和交换方式,最终得到一个有序序列。2.代码public static void main(String[] args) { int[] array = {3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48}; // 只需要修改成对应的方原创 2020-09-10 00:44:25 · 321 阅读 · 0 评论 -
冒泡排序(Bubble Sort)
冒泡排序(Bubble Sort)学习:第7遍1.冒泡排序原理是什么???一:比较相邻的元素如果第一个比第二个大,就交换它们两个;二:对每一对相邻元素作同样的工作从开始第一对到结尾的最后一对这样在最后的元素应该会是最大的数;三:针对所有的元素重复以上的步骤,除了最后一个;四:重复步骤,直到排序完成2.代码public static void main(String[] args) { int[] array = {3, 44, 26, 27, 2, 50, 48};原创 2020-09-10 00:40:02 · 183 阅读 · 2 评论