码迷,mamicode.com
首页 >  
搜索关键字:排序算法    ( 6430个结果
快速排序算法
它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用第一个数据 ...
分类:编程语言   时间:2020-05-27 14:57:19    阅读次数:73
用选择法对10个整数排序
/*选择排序法是一种不稳定的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。*/#include <stdio.h>int mai ...
分类:编程语言   时间:2020-05-27 11:54:49    阅读次数:120
程序优化--降低复杂度
程序优化的最核心的思路 第一步,暴力解法。在没有任何时间、空间约束下,完成代码任务的开发。第二步,无效操作处理。将代码中的无效计算、无效存储剔除,降低时间或空间复杂度。第三步,时空转换。设计合理数据结构,完成时间复杂度向空间复杂度的转移。 说明:常用的降低时间复杂度的方法有递归、二分法、排序算法、动 ...
分类:其他好文   时间:2020-05-27 01:13:17    阅读次数:120
用golang刷算法--快速排序算法
快速排序算法流程 选定一个基准值(任意选,以第一个为例) 定义左右指针指向左右两端 左指针往右移动,如果遇到大于基准值的数就把它和右指针的值调换位置,然后左指针不动,右指针开始向左移动,如果遇到小于基准值的数就把他和左指针的值调换位置,然后开始移动左指针,以此类推,知道左右指针相遇 递归上述过程知道 ...
分类:编程语言   时间:2020-05-26 01:12:12    阅读次数:71
基本排序算法之堆排序
1、堆的概念 堆排序依赖的数据结构是完全二叉树,要想是完全二叉树,前提必须是二叉树(废话),二叉树就要求父亲结点至多有两个孩子,即可以有一个、两个或者没有孩子。 完全二叉树则是在二叉树的基础上多了一些限制条件,那就是: 1、要么二叉树的每一层都是满的,即除叶子结点之外,其他结点都必须拥有左右孩子; ...
分类:编程语言   时间:2020-05-24 21:10:32    阅读次数:66
归并排序模板
参考博客:https://www.cnblogs.com/chengxiao/p/6194356.html sort不稳定。归并排序是较为稳定的一种排序算法 复杂度:nlogn 本排序的一个应用:HDU 4911 求逆序对数量:http://acm.hdu.edu.cn/showproblem.ph ...
分类:编程语言   时间:2020-05-24 19:19:03    阅读次数:56
排序算法
冒泡排序(Bubble Sort) 实现 每一轮,从数组头部开始,每两个元素比较大小并进行交换,直到这一轮当中最大或最小的元素被放置在数组的尾部,然后不断地重复这个过程,直到所有元素都排好位置。其中,核心操作就是元素相互比较。 例题 给定数组 [2, 1, 7, 9, 5, 8],要求按照从左到右、 ...
分类:编程语言   时间:2020-05-24 11:49:17    阅读次数:56
常用排序算法的时间复杂度和空间复杂度
以上快速排序和归并排序的空间复杂度不正确 图2没有的参考图1,以图2为准(对,就是懒得重新画图了) 排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度 冒泡排序 O(n2) O(n2) 稳定 O(1) 快速排序 O(n2) O(n*log2n) 不稳定 O(log2n)~O(n) 选择排序 O ...
分类:编程语言   时间:2020-05-23 20:29:05    阅读次数:74
堆排序实现
什么是堆 堆是一个近似 完全二叉树 的结构, 并同时满足 堆积的性质 :即子结点的键值或索引总是小于(或者大于)它的父节点。 什么是堆排序 堆排序 (英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。 实现大顶堆 首先我们需要找到所有的非叶子结点,通过完全二叉树的性质我们知道 若父 ...
分类:编程语言   时间:2020-05-23 18:40:01    阅读次数:65
排序算法之冒泡排序
冒泡排序 前置知识 确定数组需要传入两个参数: 数组的首地址和数组元素的个数 冒泡规则,假设一个 int a[5] 的数组,升序规则如下 ? 第一次排序 : 1. a[0]与a[1]比较,大的值放在a[1],小的值放在a[0]; 2. a[1]与a[2]比较,大的值放在a[2],小的值放在a[1]; ...
分类:编程语言   时间:2020-05-23 12:56:43    阅读次数:52
6430条   上一页 1 ... 23 24 25 26 27 ... 643 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!