码迷,mamicode.com
首页 >  
搜索关键字:快速排序 堆排序    ( 5090个结果
算法-排序法归类
排序算法几乎是最为常见的算法,其目的是将一串不规则的数据按照递增递减的方式重新排列。 ...
分类:编程语言   时间:2020-07-03 19:10:13    阅读次数:63
堆的简单学习
书本上只介绍到堆排序,无细讲堆,翻烂 📘掘金,找到一篇不错的图文介绍(https://juejin.im/post/5ec25b156fb9a0435a01e52e) 1. 堆 二叉树可以被细分为普通二叉树、满二叉树、完全二叉树,而今天所分享的堆这种数据结构就是一种完全二叉树。 堆中的每个结点的值 ...
分类:其他好文   时间:2020-07-03 12:14:54    阅读次数:54
快速排序
后续更新双端快排,以及Arrays.sort()中的三路快排。 public void quickSort(int[] num,int start,int end){ if (start>=end){ return; } int i = start; int j = end; while(i<j){ ...
分类:编程语言   时间:2020-07-02 19:50:59    阅读次数:52
ACwing(基础)---排序
快速排序 分治 ①确定分界点:q[l],q[(l+r)/2],q[r] ②调整范围 ③递归处理左右两段 #include<iostream> using namespace std; const int N = 1e5+10; int n; int a[N]; void quick_sort(int ...
分类:编程语言   时间:2020-07-02 11:55:45    阅读次数:58
快速排序
稳定性:不稳定排序 1. 过程介绍 快速排序是考察次数最多的排序,无论是在大学专业课的期末考试,还是在公司的面试测试题目中,快速排序都极大的被使用,在实际中快速排序也极大的被使用,如STL中的sort底层就是一个快速排序。 首先在数组中选择一个基准点,然后分别从数组的两端扫描数组,设两个指示标志(l ...
分类:编程语言   时间:2020-07-01 16:03:45    阅读次数:68
分治算法之快排和归并
快速排序和归并排序的分治应用
分类:编程语言   时间:2020-07-01 15:47:33    阅读次数:76
堆排序
基本原理堆排序的基本原理也是选择排序,只是不在使用遍历的方式查找无序区间的最大的数,而是通过堆来选择无序区间的最大的数。大致过程:1.建堆(这里是以建大顶堆为例)先把数组中的数转换成二叉树的形式,在这个基础上建堆。这里用到的大顶堆的性质:所有父节点的值要大于其子节点的值。按照这个性质,将无序的二叉树调整成堆。父节点和子节点计算:如图是一个简易的二叉树,蓝色的数字为节点的序号。计算父节点的序号要根据
分类:编程语言   时间:2020-07-01 09:19:44    阅读次数:46
【数据结构与算法】堆排序总结与实现
本博客总结学习堆排序算法,以一个数组为例,采用大根堆进行升序排序,附有代码实现。 堆排序的思想 堆排序的逻辑是建立在完全二叉树的基础上。 有两个概念必须要了解: 大根堆:每个结点值都大于等于左右孩子结点值 小根堆:每个结点值都小于等于左右孩子结点值 以大根堆为例,将根结点与最后一个结点交换,弹出根结 ...
分类:编程语言   时间:2020-06-30 13:03:10    阅读次数:63
python 快速排序
快速排序 快排的思想:首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。 百度百科给的算法: 一趟快速排序的算法是: 1)设置两个变量i、j,排序开始的时候:i=0,j=N-1; 2)以第一个数组元素作 ...
分类:编程语言   时间:2020-06-29 09:28:36    阅读次数:67
快速排序
对一个数组按照快速排序方式排序: public class Solution { public int[] sortArray(int[] nums) { int len = nums.length; quickSort(nums, 0, len - 1); return nums; } priva ...
分类:编程语言   时间:2020-06-28 18:16:07    阅读次数:61
5090条   上一页 1 ... 10 11 12 13 14 ... 509 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!