数据结构与算法
fogfore
web前后端技术学习与分享
展开
-
经典排序算法 - 插入排序Insert Sort
最近学习了一下排序算法,写篇文章记录一下,详细讲解网上有很多,可以自己去查 插入排序Insert Sort 直接插入排序就是依次将无序表中的数据插入到有序表的适当位置,使有序表仍有序,直到全部插入为止。插入排序的时间复杂度是O(n²),是稳定排序。 [ 2 ] 4 5 1 3 ↑ │ └─────┘ [ 2 4 ] 5 ...原创 2018-10-30 11:52:01 · 329 阅读 · 0 评论 -
经典排序算法 - 冒泡排序Bubble Sort
最近学习了一下排序算法,写篇文章记录一下,详细讲解网上有很多,可以自己去查 冒泡排序Bubble Sort 冒泡排序是通过两两比较,最大的往后移,重复这一过程直到数据不再交换,则排序完成。冒泡排序的时间复杂度是O(n²),是稳定排序。 算法描述(Java): import java.util.Arrays; public class SortAlgorithm { public st...原创 2018-10-30 11:56:16 · 292 阅读 · 0 评论 -
经典排序算法 - 希尔排序Shell Sort
最近学习了一下排序算法,写篇文章记录一下,详细讲解网上有很多,可以自己去查 希尔排序Shell Sort 希尔排序又叫缩小增量排序,是一种改进的插入排序。希尔排序是把待排序列的下标按一定的增量分组,对每组使用直接插入算法排序,随着增量的逐渐减少,每组包含的数据越来越多。当增量减至1时,整个文件被分为一组,算法便终止。希尔排序是非稳定排序。 算法描述(Java): 选取的增量公式为ds=2s−1...原创 2018-11-01 19:12:33 · 352 阅读 · 0 评论 -
经典排序算法 - 折半插入排序Binary Insert Sort
最近学习了一下排序算法,写篇文章记录一下,详细讲解网上有很多,可以自己去查 折半插入排序Binary Insert Sort 折半插入排序是在插入排序的基础上,通过二分查找法找到插入位置,以此来减少比较次数,提高排序效率。折半插入排序的时间复杂度是O(n²),是稳定排序。 1 2 3 4 5 6 [ 18 22 ...原创 2018-11-01 19:14:29 · 234 阅读 · 0 评论