排序
-琥珀川-
奋斗吧 骚年!
展开
-
堆排序(最小的K个数)
堆排序(最小的K个数)题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 代码import java.util.ArrayList; public class Solution { public ArrayList<Integer> GetLeastNumbers_Solution(int [] input原创 2015-06-23 11:00:07 · 640 阅读 · 0 评论 -
[编程题]数组中出现次数超过一半的数字
[编程题]数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。没有找到输出为0。 思路首先进行快排 如果 a[i]==a[i+array.length/2] 则返回a[i] 循环 array.length/2次代码public原创 2015-06-23 21:14:05 · 532 阅读 · 0 评论 -
快速排序分析
快速排序首先简单描述一下快速排序 1. 快速排序树不稳定的(由于关键字的比较与交换是跳跃进行的) 2. 时间复杂度为o(n*logn) (最好情况为n*logn 若数组基本有序为n*n) 3. 空间复杂度为logn (主要是递归造成的栈空间的使用,最好情况,递归树的深度为log2n,其空间复杂度也就为O(logn),最坏情况,需要进行n‐1递归调用,其空间复杂度为O(n),平均情况,空间复杂原创 2015-06-22 10:48:56 · 636 阅读 · 0 评论