Java算法学习
不许人间见白头~
这个作者很懒,什么都没留下…
展开
-
Java之“归并排序”
归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序是一种稳定的排序方法。思想:将两个已排好序的数组合并成一个有序的数组,先把待排序区间[s,t]以中点二分,接...原创 2020-02-16 16:25:33 · 113 阅读 · 0 评论 -
Java之“快速排序”
快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。简而言之就是“在数组中找一个支撑点(任意),经过一趟排序后,支撑点左边的...原创 2020-02-16 13:42:23 · 122 阅读 · 0 评论 -
Java之“插入排序”
用Java写“插入排序”插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。思想:将一个元素插入到已有序的数组...原创 2020-02-15 21:44:02 · 93 阅读 · 0 评论 -
Java之“选择排序”
用Java写“选择排序”思想:找到数组中未排序部分的“最数”与数组未排序部分的最后一位进行交换若只有一个数则不需要选择了,直接输出public class Main { public static void main(String[] args) { int[] a = new int[10]; if (a.length == 1) { ...原创 2020-02-13 20:50:58 · 130 阅读 · 0 评论 -
Java之“冒泡排序”
用Java写冒泡排序思想:两两依次比较根据“从大到小”或者“从小到大”的条件进行交换两两交换,每一次比较则最大的或者最小的均在未“排序”的最后面。因为俩俩交换,故需要进行n-1趟排序,比如9个数,需要8趟。public class Main { public static void main(String[] args) { int[] a = new ...原创 2020-02-13 20:12:52 · 114 阅读 · 0 评论