![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
荒野求思
人生就像写代码,总有bug出现
展开
-
第十四题:小和问题(Java)
题目: 小和问题:在一个数组中,每一个数左边比当前小的数累加起来,叫做这数组的小和,求一个数组的小和,如: 【1,3,4,2,5】 1左边比1 小的数,没有 3左边比3 小的数,1 4左边比4 小的数,1,3 2左边比2小的数,1 5左边比5小的数,1,3,4,2 所以小和是,1 + 1 + 1 + 2 + 3 + 3, + 4 = 16 代码实现与分析: packag...原创 2019-01-14 18:49:50 · 408 阅读 · 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 · 322 阅读 · 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 · 859 阅读 · 0 评论