一.排序算法 1.插入排序 1) 直接插入排序:(插入类) 最好情况(顺序有序): 1)比较次数: $\sum_{i=2}^{n} 1=n-1$ 2)移动次数: 0 最坏情况(逆序有序): 1)比较次数: $\sum_{i=2}^{n} i=\frac {(n+2)(n-1)}{2}$ 2)移动次数 ...
分类:
编程语言 时间:
2018-12-27 18:59:21
阅读次数:
273
题目描述 羊瑞大佬说:"现在的年轻人啊,写个快排都能写错,比如那个辣鸡的ModricWang"觉得他说的情况是真的,决定帮自己复习一下快排的写法。 快排的一个基础操作就是划分(partition),就是将当前的数组分为前后两个部分。 一种较为经典的partition方法是,将数组中处于中间位置(注意... ...
分类:
编程语言 时间:
2018-12-27 03:22:15
阅读次数:
311
In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a sequence of n distinct integers by swapping two adjacen ...
分类:
其他好文 时间:
2018-12-23 22:07:46
阅读次数:
146
经典快速排序中的partition, 将最后一个元素作为划分点。 维护两个区域。 <= x 的, >x 的区域。 划分过程中还有个待定的区域。 [L,less] 区域小于x, [less+1,cur) 区域大于x. [cur,R] 待定区域。 swap 代码 quickSort代码; ...
分类:
编程语言 时间:
2018-12-21 13:23:32
阅读次数:
205
Quicksort (also called partition sort and pivot sort) is arguably the most used sorting algorithm. It is the one commonly implemented internally in la ...
分类:
其他好文 时间:
2018-12-18 22:44:44
阅读次数:
171
"题面" ~~看不懂?!~~ 大概的意思就是: 给出一个长度为n的序列,然后每次只能交换相邻的两个数,问最小需要几次使序列 严格上升 不断读入n,直到n=0结束 思路: 交换相邻的两个数,这不就类似冒泡排序吗?但是 n define ll long long using namespace std; ...
分类:
其他好文 时间:
2018-12-17 20:19:47
阅读次数:
181
1、冒泡排序 最简单的一种排序算法。先从数组中找到最大值(或最小值)并放到数组最左端(或最右端),然后在剩下的数字中找到次大值(或次小值),以此类推,直到数组有序排列。算法的时间复杂度为O(n^2)。 2、选择排序 每一趟在n-i+1(i=1,2,...,n-1)个记录中选取关键字最小的记录作为有序 ...
分类:
编程语言 时间:
2018-12-08 17:03:08
阅读次数:
111
package sort; import java.util.Arrays; public class QuickSort { public static void main(String[] args) { int a[] = {11,2,1,5,7,10,9,8,4,0,6}; int l=0; ...
分类:
编程语言 时间:
2018-12-06 22:12:20
阅读次数:
205
快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此 ...
分类:
编程语言 时间:
2018-11-30 15:33:41
阅读次数:
178