排序
云生1992
--
展开
-
排序测试数组生成器
实现了一个类,能够自动生成排序所需的测试数组,能够判断排序结果是否正确。 import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ArrayGenerator { public static int [] random_order_array(int原创 2017-02-24 14:28:14 · 1029 阅读 · 0 评论 -
堆排序详解以及JAVA实现
堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。 堆是一棵完全二叉树,它的特点是(以大顶堆为例),堆顶的元素大于子节点的元素。 如果用数组array来存储,则堆顶是array[0],其子节点是array[1],array[2]。array[1]的子节点是array[3],array[4]。一般的,array[i]的子节点是array[2*i+原创 2017-02-24 14:09:48 · 518 阅读 · 5 评论 -
JAVA实现单链表快速排序
思路如下:将链表的第一个元素设置为pivot,遍历之后的n-1个元素,如果该元素的值大于pivot,则将其放在链表末尾(O(1)时间)。 import java.util.ArrayList; import java.util.Collections; import java.util.List; public class LinkListSort { public原创 2017-03-27 20:35:38 · 4181 阅读 · 3 评论 -
快速排序详解及JAVA/C++实现
快速排序(Quicksort)的主要思想是,通过某种O(n)的方法,将乱序数组分为左右两部分,使得左边的元素小于右边的元素,然后进行递归。平均来说,复杂度是O(nlog(n)). 快速排序的关键在于如何用O(n)的时间将数组分为左右两部分。不妨设临界元素pivot=array[0],将数组分为比pivot大和小两部分。我们利用两个指针left_index以及right_index,使得下标小于l原创 2017-02-25 20:30:17 · 448 阅读 · 8 评论 -
leetcode编程:对数时间查找有序数组中位数
问题描述 输入:两个有序数组nums1,nums2 输出:两个数组的中位数 原问题描述如下 There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity s原创 2017-06-03 15:14:16 · 353 阅读 · 0 评论