常见排序算法
文章平均质量分 50
排序
魑魅魍魉114
这个作者很懒,什么都没留下…
展开
-
基本排序算法之归并排序
基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 1.把数组从中间划分成两个子数组; 2.一直递归地把子数组划分成更小的子数组,直到子数组里面只有一个元素 3.依次按照递归的返回顺序,不断地合并排好序的子数组,直到最后把整个数组的顺序排好 合并相邻有序子序列 再.原创 2022-05-08 11:03:50 · 125 阅读 · 0 评论 -
归并排序
归并排序的介绍 归并排序(英语:Merge sort,或Mergesort),是创建在归并操作上的一种有效的稳定的排序算法,其时间复杂度为O(N*logN)。1945年由约翰·冯·诺伊曼首次提出。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。 概念 是利用递归与分治的技术将数据序列划分为越来越小的半子表,再对半子表排序,最后再用递归方法将排好序的半子表合并成越来越大的有序序列。 递归更详细可以参考:归并排序的递归思想 核心思想 将原创 2021-02-17 17:32:19 · 85 阅读 · 0 评论 -
二分查找算法
二分查找算法 我周围的人几乎都认为二分查找很简单,但事实真的如此吗?二分查找真的很简单吗?并不简单。看看 Knuth 大佬(发明 KMP 算法的那位)怎么说的: Although the basic idea of binary search is comparatively straightforward, the details can be surprisingly tricky... 这句话可以这样理解:思路很简单,细节是魔鬼。 本文就来探究几个最常用的二分查找场景:寻找一个数、寻找左侧转载 2021-02-17 10:08:03 · 259 阅读 · 0 评论 -
堆排序
转载自:堆排序原创 2021-02-16 16:10:42 · 56 阅读 · 0 评论 -
排序算法之快速排序
快速排序 快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,它是一种不稳定的排序算法 该方法的基本思想是: 1.先从数列中取出一个数作为基准数。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 3.再对左右区间重复第二步,直到各区间只有一个数。 以一个数组作为示例,取区间第一个数为基准数。如图所示:(挖坑法) 挖坑填数的代码如下: public static int partition(int[] arr, in.原创 2021-02-16 12:32:22 · 156 阅读 · 0 评论