算法
白给研究生茄子
各自努力,高处相见,亦不可浮沙筑高楼!!!
展开
-
第五篇:堆排序
第五篇:堆排序一、堆排序概念二、实现描述三、代码实现(https://www.cnblogs.com/chengxiao/p/6129630.html)一、堆排序概念堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序。时间复杂度:O(nlogn)空间复杂度:O(1)稳定性:不稳定二、实现描述三、代码实现(https://www.cnblogs.com/chengxiao/p/6129630.html)public static void heapSort(int[] a原创 2021-06-22 22:04:25 · 187 阅读 · 1 评论 -
第四篇:希尔排序
第四篇:希尔排序一、希尔概念二、算法描述三、代码实现四、希尔优化一、希尔概念希尔排序就是一种特殊的插入排序,里面有增量和分组的概念,根据增量将整个数据分成多组子序列,然后在子序列中进行插入排序,直到增量为1时,就是将整个数据看成一个基本有序的序列了,然后进行插入排序。时间复杂度:O(nlog2n)空间复杂度:O(1)稳定性:不稳定,因为在进行分组时,相同元素可能分到不同组中,改变相同元素的相对顺序。增量选取:希尔排序的时间复杂度与增量的选取有关,但是现今仍然没有人能找出希尔排序的精确下界。一般的原创 2021-06-22 22:01:42 · 263 阅读 · 0 评论 -
第三篇:插入排序
第三篇:插入排序一、插入概念二、算法描述三、代码实现四、插入优化一、插入概念工作原理:是在某个从前往后的元素的前面是已经排好的有序序列,对于未排序数据(某个元素及其后面),在已排序序列中从后向前扫描,找到相应位置(找到一个比他小的就插入:升序,比他大就将其大的元素往后移动一位)并插入。时间复杂度:O(n^2)空间复杂度:O(1)稳定性:稳定二、算法描述1.将第一个元素看成是已经排好序了,拿排好序的元素后面一个元素A来和前面的元素比较。2.A从有序元素的最后一个比较,如果某个元素比A大就往后面原创 2021-06-22 21:59:01 · 184 阅读 · 0 评论 -
第二篇:快速排序
第二篇:快速排序一、概念二、算法描述三、伪代码实现(中间值为基准值)四、代码实现(中间值为基准值)五、代码实现(任意基准值实现)六、快排优化一、概念 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。时间复杂度:O(nlog2^n)空间复杂度:O(log2^n)稳定性:不稳定二、算法描述 **基本思想**:通过一趟排序将要排序的数据分割成独立的原创 2021-06-22 21:54:39 · 102 阅读 · 0 评论 -
第一篇:冒泡排序
第一篇:冒泡排序一、冒泡概念二、算法描述三、伪代码描述四、代码实现五、冒泡排序优化一、冒泡概念 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 时间复杂度:O(n^2)空间复杂度:O(1)稳定性:稳定二、算法描述1、i从0开始,i与i+1比较,如果i>i+1,那么就互换。2、i不原创 2021-06-22 21:50:33 · 297 阅读 · 0 评论 -
十大排序总结
十大排序总结文章目录十大排序总结一、算法分类:二、算法复杂度三、相关概念一、算法分类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。二、算法复杂度三、相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面(相等的数不改变他们的相对顺序)。不稳定:如果a原本在b的前面,而a=b,原创 2021-06-22 21:41:45 · 65 阅读 · 0 评论