![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
八种排序算法
文章平均质量分 78
学习练习的记录
handsome_sai
这个作者很懒,什么都没留下…
展开
-
常见查找算法的介绍及实现
查找算法介绍 顺序(线性)查找 二分查找/折半查找 插值查找 斐波那契查找 思路分析: 顺序(线性)查找 : 把数组从头到尾遍历,找到就返回数组下标。 二分查找(折半查找) : 找到该数组的中间的下标 1)中间值下标: mid = (left+right) / 2; 2)中间值:midVal = arr[mid]; 将需要查找的值和中间值比较 1) 如果要查找的值小于中间值,证明要查找的在中间值的左边,因此需要递归的向左查找 2) 反之向右递归查找 3 )如果要查找的值等于中间值,证原创 2020-07-23 16:37:10 · 531 阅读 · 0 评论 -
基数排序及测试算法速度
基数排序: 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或 bin sort,顾 名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用。 基数排序法是属于稳定性的排序,基数排序法的是效率高的稳定性排序法。 基数排序(Radix Sort)是桶排序的扩展。 基数排序是 1887 年赫尔曼·何乐礼发明的。它是这样实现的:将整数按位数切割成不同的数字,然后按每个 位数分别比较。 思路分析:原创 2020-07-22 11:50:40 · 268 阅读 · 0 评论 -
归并排序及测试算法速度
归并排序: 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 实现步骤: 分:使用递归,实现分隔成单独的数据 治: 1)将数组中的元素按照从大到小的顺序排入到temp临时数组中,直到一侧完全排入 2)将剩下一侧依次排入temp中 3)将排好序的temp(临时数组)拷贝到arr原创 2020-07-21 16:17:54 · 250 阅读 · 0 评论 -
快速排序及测试算法速度
快速排序 快速排序(Quicksort)是对冒泡排序的一种改进。 基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 图解: 代码实现: package com.sai.sort; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Da原创 2020-07-20 11:36:57 · 407 阅读 · 0 评论 -
希尔排序及测试算符速度
希尔排序: 希尔排序是希尔(Donald Shell)于 1959 年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序。 希尔排序的基本思想: 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至 1 时,整个文件恰被分成一组,算法便终止 代码实现: package com.sai.sort; import java.text.SimpleDateFormat;原创 2020-07-17 14:59:02 · 158 阅读 · 0 评论 -
插入排序及测试算法速度
插入排序: 插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。 插入排序法思想: 插入排序(Insertion Sorting)的基本思想是:把 n 个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有 n-1 个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。 图解: 代码实现: 代码实现: package c原创 2020-07-16 10:40:27 · 170 阅读 · 0 评论 -
选择排序及测试算法速度
选择排序 选择式排序也属于内部排序法,是从待排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。 选择排序的思想: 选择排序(select sorting)也是一种简单的排序方法。 它的基本思想是:第一次从 arr[0]~arr[n-1]中选取最小值,与 arr[0]交换,第二次从 arr[1]~arr[n-1]中选取最小值,与 arr[1]交换,第三次从 arr[2]~arr[n-1]中选取最小值,与 arr[2]交换,…,第 i 次从 arr[i-1]~arr[n-1]中选原创 2020-07-15 16:21:32 · 178 阅读 · 0 评论 -
冒泡排序及测试算法速度
冒泡排序: 冒泡排序(BubbleSorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。 优化:因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在 排序过程中设置一个标志 flag 判断元素是否进行过交换。从而减少不必要的比较。(这里说的优化,可以在冒泡排 序写好后,在进行) 代码实现: 代码实现: package co原创 2020-07-14 16:02:43 · 274 阅读 · 0 评论