![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法——排序
排序算法的理解
hacker ben
在校大二软件工程学生
展开
-
快速排序的Java实现
桶排序时间复杂度低,但是会造成资源浪费;而冒泡排序会降低资源的浪费,但是它的时间复杂度为O(n^2);这里我们介绍一种可以降低时间复杂度的排序方法---快速排序,听名字就感觉很快,是吧?思路:它是设置一个基准数,每次会将所有数分为大于基准数或者小于基准数,然后对于大于(小于)基准数的这两堆数再进行此操作.........原创 2022-10-20 09:13:15 · 132 阅读 · 1 评论 -
冒泡排序的Java实现
内层for循环指的是一趟内元素的交换次数,每比较一次一个元素的位置就已经确定,第一趟确定一个就-1,第二次-2,第三次-3.......也就是n-1-i。外层的for循环指的是会比较几趟,数组长度为4,很明显比较三趟(当数组为长度为n时比较n-1,因为数组长度是从0开始,所以就是a.length)if判断时简单的交换,从大到小或者从小到大修改里面的大于号小于号就行了。假如对一个无序的数组 2 6 3 7进行排序。排序的过程 6 3 7 2 (1)原创 2022-10-18 16:27:08 · 129 阅读 · 0 评论 -
当桶排序遇到负数
在桶排序遇到负数时,我们的解决思路时将所有数先化为正数最后再返回为正数。4.最后将排好的数再加上减去的负数。2.让所有的数都减去最小的负数。1.找到数组中最小的负数。3.对处理后的数进行排序。原创 2022-10-18 13:53:25 · 326 阅读 · 0 评论 -
桶排序(Java实现)
我们需要定义一个数组即八个容器并且对桶进行标号1~8;这个桶没装任何东西所以初始化全为0.装一个数字,数字所对应的下标对应的值+1;例如传入2时其对应的值由0变为1。思考一:如果所排序的数字不确定,那就需要得到被排序数组的最大值。思考二:如果被排序数组中存在负数,是不是这种方法就不行了呢?桶排序的话我们就需要几个装数字的容器,像学过的数组。例子:要对8,5,5,3,2这五个数进行排序。原创 2022-10-04 21:45:54 · 379 阅读 · 2 评论