
排序算法
文章平均质量分 74
Younger_zeng
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java排序算法(一)------冒泡排序
冒泡排序 冒泡排序: 两两比较相邻记录的关键字,如果反序则交换,直到没有反序记录为止 冒泡排序是將比較大的數字沉在最下面,较小的浮在上面 最简单的冒泡排序 /* * 严格意义上说不满足冒泡排序思想,应该是最简单的交换排序而已 * 思路:让每一个关键字都和它后面的每一个关键字比较, * 大则交换,这样第一位置就变成最小值 */ //134 1172 35 91 119 85 4...原创 2018-09-23 12:22:47 · 198 阅读 · 0 评论 -
java排序算法(二)------插入排序
插入排序 直接插入排序基本思想: 每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。 public static void sort(int[] arr) { int i; int t; for (int j = 1; j < arr.length; j++) { t = arr[j]; for (i = j - 1; arr[...原创 2018-09-23 12:30:58 · 190 阅读 · 0 评论 -
java排序算法(三)------选择排序
选择排序 基本思想:每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,简单选择排序是不稳定排序。 选择排序的时间复杂度和空间复杂度分别为 O(n2 ) 和 O(1) 代码实现: public static void sort(int[] arr){ int t = 0; int min; for(int i = 0;i < arr.len...原创 2018-09-23 12:36:56 · 161 阅读 · 0 评论 -
java排序算法(四)------希尔排序
希尔排序 希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。 代码实现: /** *希尔排序的诞生是由于插入排序在处理大规模数组的时候会遇到需要移动太多元素的问题。希尔排序的思想是将一个大的数组“分而治之”, *划分为若干个小的数组,以 gap 来划分,比如数组 [1, 2, 3, 4, 5, 6, ...原创 2018-09-23 13:22:14 · 161 阅读 · 0 评论 -
java排序算法(五)------归并排序
归并排序: 是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 合并相邻有序子序列 代码实现: public class MergeSort { public static void sort(...原创 2018-09-23 13:30:40 · 161 阅读 · 0 评论 -
java排序算法(六)------快速排序
快速排序 基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列 第一种方法:以第一个数为枢纽值 public class QuickSort { public static int[] sortQuick(int[] array) { ...原创 2018-09-23 15:50:06 · 399 阅读 · 0 评论 -
java排序算法(七)------堆排序
堆排序 代码实现: public static void sort01(int[] arr) { for (int i = 0; i < arr.length; i++) { headAdust01(arr, arr.length - 1 - i); swap(arr, 0, arr.length - 1 - i); } } public static void ...原创 2018-09-23 15:58:00 · 188 阅读 · 0 评论 -
java排序算法(八)------桶式排序
桶式排序 实现代码: /** *桶式排序:有限个数字m,每个数字的大小都在1与n之间 *,则我们可以假设有n个桶,遍历m个数字,将其存入对应的桶中 *(如数字的值为3,就存入3号桶,桶的值对应存入数字的个数) */ public class BucketSort { public static void sort(int[] arr){ //求得最大值 int max = arr...原创 2018-09-23 16:00:36 · 278 阅读 · 0 评论 -
java排序算法(九)------基数排序
基数排序 代码实现: public class RadixSort { public static void sort(int[] a) { int digit = 0;// 数组的最大位数 for (int i : a) { // 获取数组中数的最大位数 digit = Math.max(digit,...原创 2018-09-23 16:02:05 · 164 阅读 · 0 评论