
算法
文章平均质量分 56
KAI_CHEN_J
Java
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法笔记(1)-选择排序
选择排序步骤:首先从数组中找到最小的元素,其次将它与数组中的第一个元素交换(如果第一个元素就是最小的则与其自身交换)。再次,在剩下的元素中找到最小的元素,将它与数组中的第一个元素交换。如此反复,直到整个数组有序。下面是选择排序的代码:package algorithm.sort; import java.util.Arrays; import java.util.Random; /** * @...原创 2018-03-22 13:06:44 · 190 阅读 · 0 评论 -
算法笔记(2)-插入排序
插入排序插入排序:对于当前索引,左边元素都是有序的,但是并不一定是元素的最终位置,为了给更小的元素腾出位置,需要移动位置。与插入排序不同的是:如果数组的元素基本有序,则插入排序要比随机顺序的快很多。算法描述:(1)从第一个位置开始,认为该元素已经被排序(2)取出下一个元素,在已经排序的元素序列中,从后向前扫描。(3)如果该元素(已排序)大于新元素,则将该元素移到下一位置(4)重复步骤3,知道找到已...原创 2018-03-22 13:51:44 · 160 阅读 · 0 评论 -
算法笔记(3)-希尔排序
希尔排序希尔排序是插入排序的一种变体。插入排序对于顺序随机的数组,速度回很慢,因为它只会交换相邻的元素,因此元素只能一点一点的从一端移动到另一端。如果最小的元素在最后,则需要移动N-1次才能将其移动到另一端。希尔排序使用交换不相邻的元素以对数组进行排序。 算法思想希尔排序的思想是,使得数组中任意间隔为h的元素都是有序的。希尔排序将比较元素分成几个区域来实现插入排序的性能,这样可以让元素一次性的朝最...原创 2018-03-22 16:38:33 · 171 阅读 · 0 评论 -
算法笔记(5)-快速排序
快速排序快速排序是分治算法的一种,是应用最广泛的算法。 算法描述(1)选取一个元素作为基准元素。(2)将数组分成两个部分,左边的元素都比基准元素小,右边的元素都比基准元素大。(3)在左右两部分再重复步骤1~2,直到数组有序。 算法实现javapackage algorithm.sort; /** * @author kaichen * */ public class Quick { ...原创 2018-03-23 15:44:11 · 135 阅读 · 0 评论 -
算法笔记(6)-冒泡排序
冒泡排序算法描述两两比较两个元素的大小,如果两个元素的顺序相反则交换位置,每一轮扫描都会将最小元素的放到最前面(或者最大的元素放到最后面)。 算法步骤(1)比较相邻的元素,如果第一个比第二个大,则交换它们的顺序。(2)从开始第一对到结尾最后一对重复执行步骤1。会将最大的元素放到最后一个位置(3)针对所有的元素重复上述步骤,最后一个位置已定不需要操作。(4)持续每次对越来越小的序列执行上述操作。 算...原创 2018-03-23 16:04:41 · 205 阅读 · 0 评论