
排序
long_shu
但行好事,莫问前程
展开
-
冒泡排序 java实现
* 原理:比较两个相邻的元素,将值大的元素交换至右端。** 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。** 第一趟比较完成后,最后一个数一定是数组中最大的一个数,所以第二趟比较的...原创 2019-03-31 22:03:28 · 130 阅读 · 0 评论 -
选择排序 java实现
选择排序:首先找到数组中最小的那个元素,其次将它和数组的第一个元素交换位置(如果第一个元素就是最小元素,那么它和它自己交换。* 在剩下的元素中找最小的元素,将其与数组中的第二个元素交换,如此往复,直到将整个数组排序。* 不断的选择剩余元素中的最小者 public static void main(String[] args){ Integer[] a = { ...原创 2019-03-31 22:09:22 · 112 阅读 · 0 评论 -
插入排序 java
* 插入排序* 通过构建有序序列,对于未排序数据,在已经排序的序列中从后向前扫描,找到相应的位置并插入。* 步骤:* 1, 从第一个元素开始,该元素可以被认为已经被排序* 2, 取出下一个元素,在已经排序的元素中从后向前扫描* 3, 如果该元素(已经排序的)大于新元素,将该元素移至下一个位置* 4, 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置* 5, 将该元素插入到该位...原创 2019-03-31 22:24:10 · 192 阅读 · 0 评论 -
希尔(shell)排序 java
希尔排序希尔排序:交换不相邻的元素以对数组的局部进行排序,并最终用插入排序将局部有序数组排序。思想:使数组中任意间隔为h的元素都是有序的,这样的数组被称为h有序数组。一个h有序数组就是h个互相独立的有序数组编织在一起的数组。不稳定排序public static void main(String[] args){ Integer[] a = {23, 21, 4, 6, 7...原创 2019-03-31 22:32:01 · 235 阅读 · 0 评论 -
归并排序 java实现
归并排序要将一个数组排序,可以先递归将它分成两半分别排序,然后将结果归并起来。归并性质:任意长度为N的数组排序所需的时间和Nlog(N)成正比;缺点则是它所需要的额外空间和N成正比。实现一:自顶向下(递归,分治)private static Comparable[] aux;//归并所需要的辅助数组 public static void main(Strin...原创 2019-03-31 22:37:34 · 215 阅读 · 0 评论