算法
jiang_zf
这个作者很懒,什么都没留下…
展开
-
【排序算法】快速排序原理及Java实现
1、基本思想:快速排序是我们之前学习的冒泡排序的升级,他们都属于交换类排序,都是采用不断的比较和移动来实现排序的。快速排序是一种非常高效的排序算法,它的实现,增大了记录的比较和移动的距离,将关键字较大的记录从前面直接移动到后面,关键字较小的记录从后面直接移动到前面,从而减少了总的比较次数和移动次数。同时采用“分而治之”的思想,把大的拆分为小的,小的拆分为更小的,其原理如下:对于给定的一组记录,选择...转载 2018-03-20 15:56:48 · 199 阅读 · 0 评论 -
Java中的经典算法之冒泡排序(Bubble Sort)
原理:比较两个相邻的元素,将值大的元素交换至右端。思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。举例说明:要排序数组:int[] arr={6,3,8,2,9,1}; 第一趟排序: ...转载 2018-03-20 16:17:11 · 130 阅读 · 0 评论 -
冒泡排序
冒泡排序(Bubble Sort)是常用的数组排序算法之一,它以简洁的思想与实现方法而备受青睐,也是广大学习者最先接触的一种排序算法。冒泡排序的基本思想是:对比相邻的元素值,如果满足条件就交换元素值,把较小的元素值移动到数组前面,把大的元素值移动到数组后面(也就是交换两个元素的位置),这样数组元素就像气泡一样从底部上升到顶部。冒泡排序的算法比较简单,排序的结果稳定,但时间效率不太高。Java...原创 2019-07-28 16:46:24 · 111 阅读 · 0 评论 -
快速排序
快速排序(Quicksort)是对冒泡排序的一种改进。快速排序的基本思想是:通过一趟排序,将要排序的数据分隔成独立的两部分,其中一部分的所有数据比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此使整个数据变成有序序列。具体做法是:假设要对某个数组进行排序,首先需要任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它小的数都放...转载 2019-07-28 17:13:05 · 183 阅读 · 0 评论 -
选择排序
转自:http://c.biancheng.net/view/930.html假设当前存在一个 int 类型的数组 number,该数组中的元素依次是 13、15、 24、99、4 和 1。如果使用冒泡排序进行两两相邻比较,第一趟排序后的结果如下:13、15、24、4、1、99第二趟排序后的结果如下:13、15、4、1、24、99第三趟排序后的结果如下:13、4、...转载 2019-07-28 17:21:27 · 91 阅读 · 0 评论 -
直接插入排序
转自:http://c.biancheng.net/view/931.html直接插入排序的基本思想是:将 n 个有序数存放在数组 a 中,要插入的数为 x,首先确定 x 插在数组中的位置 p,然后将 p 之后的元素都向后移一个位置,空出 a(p),将 x 放入 a(p),这样可实现插入 x 后仍然有序。代码如下:public static void main(String[] ar...转载 2019-07-28 17:41:19 · 97 阅读 · 0 评论