
排序算法
奋斗啦哈
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二分查找折半查找排序
在一个有序的数组中,折半查找一个元素key,如果能找到返回数组的下表,如果找不到,返回-1。实现如下所示:/** * 二分查找法 * @author jcm * 2016年8月6日 */public class BinarySerach { public static void main(String[] args) { int a[] = {13,19,32,35,56原创 2016-09-10 09:34:25 · 1626 阅读 · 0 评论 -
冒泡排序
冒泡排序,需要进行n-1趟排序,内部循环是两个相邻元素进行比较,假如是升序排序,那么比较的时候,使得最大值元素向右移。实现过程如下所示:/** * 冒泡排序 * @author jcm * 2016年8月6日 */public class BubbleSort { public static void main(String[] args) { int array[] =原创 2016-09-10 09:50:13 · 255 阅读 · 0 评论 -
插入排序
插入排序,要备份要插入的元素,然后从后向前比较,如果前面值大于要插入的元素,则前面值向后移动一位,最后找到要插入的位置。实现过程如下所示:/** * @author jcm * * 2016年8月6日 */public class InsertSearch { public static void main(String[] args) { int array[] = {1原创 2016-09-10 10:44:20 · 239 阅读 · 0 评论 -
简单选择排序
简单选择排序,要选取一个关键字下标,与关键字作比较,如果小于关键字,则交换下标。实现过程如下所示:/** * @author jcm * *时间 2016年8月6日 */public class SelectSort { public static void main(String[] args) { int array[] = { 23, 18, 19, 17, 45, 8原创 2016-09-10 15:06:08 · 213 阅读 · 0 评论 -
快速排序
快速排序,传进三个参数,分别是数组,左边和右边的大小。先判断左边是否小于右边,因为要递归,这作为递归的出口条件。然后在定义三个变量,分别是low,high和比较的关键字。完成一趟排序的时候,将关键字和当前high所指的这个元素进行交换。实现过程如下所示:/** * @author jcm * * 2016年8月6日 */public class QuickSort {原创 2016-09-11 09:44:05 · 255 阅读 · 0 评论 -
希尔排序
希尔排序最基本还是是插入排序,只不过在插入排序的基础上,一次交换好多逆序,而插入排序一次只能交换一次逆序,所以希尔排序比起插入排序要快。其次计算间隔,是有个公式,即 h=3*h-1来计算间隔,间隔初始值是1,直到间隔的初始值大于数组的大小时停止,最大间隔不大于数组大小的最大值。实现过程如下所示:/** * @author jcm * *时间 2016年9月11日 */public原创 2016-09-11 10:53:53 · 391 阅读 · 0 评论 -
堆排序
堆排序实现过程如下所示:/** * @author jcm * *时间 2016年9月11日 */public class HeapSort { public static void main(String[] args) { int[] array = {13,12,11,10,9,8,89,-1,76,0,332,13,19,32,35,56,75,97,98,112}原创 2016-09-11 13:24:32 · 231 阅读 · 0 评论