排序
奔跑的小脑斧
努力搬砖ing~
展开
-
堆排序
最大堆:堆顶为整个堆中最大元素的堆称为最大堆。 最小堆:堆顶为整个堆中最小元素的堆称为最小堆。 堆排序步骤: 1.把无序数组构建成二叉堆。需要从小到大排序,则构建成最大堆;需要从大到小排序,则构建成最小堆。 2.循环删除堆顶元素,替换到二叉堆的末尾,调整堆顶产生新的堆顶。 下边为具体的代码 package com.company; import java.lang.reflect....原创 2020-01-14 20:13:29 · 143 阅读 · 0 评论 -
双边循环法下的快速排序
(1)选定基准元素pivot,并且设置两个指针left和right,指向数列的最左和最右边两个元素。 (2)接下来进行第一次循环,从right指针开始,让指针所指向元素和基准元素做比较。如果大于或者等于pivot,则指针向左移动;如果小于pivot,则right指针停止移动,切换到left指针。 (3)left指针移动时,让指针所指向的元素和基准元素作比较。如果小于或等于pivot,则指针向右...原创 2020-01-14 10:21:58 · 347 阅读 · 0 评论 -
冒泡排序
冒泡排序 冒泡排序的基本思想是对比相邻的元素值,如果满足条件就交换元素值,把较小的元素移动到数组前边,把大的元素移动到数组后边(也就是交换两个元素的位置),这样数组元素就像气泡一样从低部上升到顶部。 package ace; public class BubbleSort { public static void main(String[] args) { int[] array=new int...原创 2019-11-25 21:09:39 · 103 阅读 · 0 评论 -
直接插入法排序
直接插入法排序 直接插入法排序的基本思想是把n(n>=2)个待排序的元素看成是一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使其成为新的有序表,重复n-1次可完成排序过程。具体程序如下所示。 ...原创 2019-11-25 19:43:21 · 413 阅读 · 0 评论