
排序
陌亿
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二分查找
二分查找 有一天阿东到图书馆借了 N 本书,出图书馆的时候,警报响了,于是保安把阿东拦下,要检查一下哪本书没有登记出借。阿东正准备把每一本书在报警器下过一下,以找出引发警报的书,但是保安露出不屑的眼神:你连二分查找都不会吗?于是保安把书分成两堆,让第一堆过一下报警器,报警器响;于是再把这堆书分成两堆…… 最终,检测了 logN 次之后,保安成功的找到了那本引起警报的书,露出了得意和嘲讽的笑容。于是...原创 2020-04-12 15:49:01 · 706 阅读 · 0 评论 -
堆排
堆排 思路:首先我们需要将所给的数组中的数组合成一个二叉树,然后在排序。排序我们使用建大堆的方法。话不多说,看代码: #include<stdio.h> #include<stdlib.h> void swap(int* a, int* b) { int t = *a; *a = *b; *b = t; } void print(int* a, int size) {...原创 2020-04-09 11:45:30 · 132 阅读 · 0 评论 -
快速排序
快速排序 思路: 1.确定一个基准值, 2.比基准值小的放左边,比基准值大的放右边 3.按照分治思想,将基准值左边的如同上面的方法,确定基准值,然后比较,直到两个相邻基准值中的数等于1或没有,将右边也同样处理。 partion: 1、Hover法:将最右边的数定位基准值,第一个数为begin,最后一个数为end,begin开始向右移,end向左移,begin遇到小于等于基准值的向右移,大于基准值停...原创 2020-04-09 10:03:02 · 121 阅读 · 0 评论 -
插入排序
插入排序 思路:将数据分为两个部分,一部份为排序好的数据,一部分为还未排序的数据。 每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。(就像我们玩扑克牌一样,每接一张牌,都要与手中的牌进行比较,放入合适的位置,当接完最后一张牌时,手中的牌已经有序)。 时间复杂度:O(N^2) 空间复杂度:O(1) 稳定性:稳定的 适用场景:数据量比较小的,接近有序的 // 时间...原创 2020-03-21 23:21:54 · 115 阅读 · 0 评论 -
希尔排序
希尔排序 希尔排序 希尔排序(shell sort)这个排序方法又称为缩小增量排序。 该方法的基本思想是:先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在...原创 2020-03-22 12:02:57 · 109 阅读 · 0 评论 -
冒泡排序
冒泡排序 冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 思路:每冒一次,将最大的数选出来放到最后。 稳定性:稳定 时间复杂度:O(N^2) 空间复杂度:O(1)* // 稳定性:稳定 // 时间复杂度:...原创 2020-03-22 12:17:00 · 318 阅读 · 0 评论