算法
Racheli
这个作者很懒,什么都没留下…
展开
-
选择排序
九大排序算法之选择排序 import java.util.*; //选择排序:从后面的序列中选择一个最小的数放到前面排序好的适当的位置(没有排序好的第一个位置) //时间复杂度:N*N,空间复杂度:1 public class Selection { public static void sort(Comparable[] a) { int N=a...原创 2019-09-01 09:56:42 · 99 阅读 · 0 评论 -
插入排序
九大排序算法之插入排序 算法思想:通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 流程图 代码实现 import java.util.*; //插入排序:序列左边有序,每次都是将当前值与序列左边数据比较,若小则相互交互,直到找到正确的位置。 //时间复杂度:介于N和...原创 2019-09-01 10:22:19 · 106 阅读 · 0 评论 -
希尔排序
九大排序算法之希尔排序 算法思想 排序思想 代码实现 import java.util.*; //希尔排序(插入排序的快速排序算法):使数组中任意间隔为h的元素是有序的,h不断减小 //时间复杂度:NlogN,空间复杂度:1 ...原创 2019-09-01 11:04:31 · 114 阅读 · 0 评论 -
快速排序
九大排序算法之快速排序 算法思想:选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。 代码实现 //快速排序 //先找到一个位置j,使左边的子数组都比其小,右边的子数组都比其大 //将一个数组分成两个子数组,将两部分独立的排序 //时...原创 2019-09-01 15:41:41 · 88 阅读 · 0 评论 -
归并排序
九大排序算法之归并排序 自顶向下的归并排序 //归并排序:自顶向下的归并排序。 //分治思想 //(递归的)先将两个数组分成两半分别排序,然后将结果归并起来 //时间复杂度:NlogN,空间复杂度:N public class Merge { public static Comparable[] aux; public static void sort(Comparable[] a) { ...原创 2019-09-01 16:14:39 · 105 阅读 · 0 评论 -
剑指offer及算法汇总链接
最近看了剑指offer和算法红皮书第四版,总结一下可以参考的博主的文章 剑指offer 大神整理的剑指Offer【所有面试题汇总】 算法汇总 排序算法 选择排序 插入排序 希尔排序 冒泡排序 归并排序 快速排序 堆排序 查找算法 有序数组中的二分查找 二叉查找树 二叉查找树较详细代码实现 红黑二叉查找树(原理、实现) 散列表 ...转载 2019-09-01 16:27:29 · 236 阅读 · 0 评论