排序
荒野求思
人生就像写代码,总有bug出现
展开
-
第十四题:小和问题(Java)
题目:小和问题:在一个数组中,每一个数左边比当前小的数累加起来,叫做这数组的小和,求一个数组的小和,如:【1,3,4,2,5】1左边比1 小的数,没有3左边比3 小的数,14左边比4 小的数,1,32左边比2小的数,15左边比5小的数,1,3,4,2所以小和是,1 + 1 + 1 + 2 + 3 + 3, + 4 = 16 代码实现与分析:packag...原创 2019-01-14 18:49:50 · 417 阅读 · 0 评论 -
第十五题:荷兰国旗问题(java)
题目要求:给定一个数组,将这个数组,按照num划分,小于num的元素放在数组的左边,等于num的数放在数组的中间,大于num的数放在数组的右边。要求时间复杂度是O(N),额外空间复杂度是O(1)代码实现:package com.isea.brush;/** * 荷兰国旗问题: * 解题思路:使用两个变量(指针),less 和more,less表示小于num的范围,more...原创 2019-01-14 19:30:58 · 353 阅读 · 0 评论 -
第十六题:求无序数组排好序后相邻两数的最大差值(Java)
题目要求:给定一个无序的数组,求该数组排好序后的相邻两个数的最大差值,要求时间复杂度为O(n),且不能使用非基于比较的排序,比如:3,1,6,2,7 ,排序序之后是,1,2,3,6,7。两个数的最大差值是 3。代码实现与分析:这个问题实现思路非常的器巧妙,借用了桶的概念,但是没有进行桶排序。package com.isea.brush;/** * 求相邻两个数的最大差值...原创 2019-01-14 21:07:28 · 874 阅读 · 0 评论