这是一个快速排序的模板题。拿到题后便写了quicksort(确定一个基准数,利用两个哨兵,把大的放右边,小的放左边,再递归实现排序),但是竟然TLE了60pts(???),于是翻看dalao们的题解,发现了堆排序(在清北学会了,但是一个学期后给忘了),然后看到了一个multiset(set去重,它不 ...
分类:
编程语言 时间:
2019-07-19 20:53:46
阅读次数:
111
快速排序 也叫做分区排序 时间复杂度O(n*logn) 不稳定 分区排序,使得左侧子序列中的元素都小于基准元素,右侧子序列中的元素都大于等于基准元素 ...
分类:
其他好文 时间:
2019-07-03 14:06:59
阅读次数:
88
一、快速排序的介绍 快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此 ...
分类:
编程语言 时间:
2019-06-25 09:40:40
阅读次数:
114
package QuickSort; import MergeSort.MegerSort; import chooseSort.Example; /** * 快速排序 * 思想:分而治之; * 不断地以第一个元素为基准对当前数组进行分割,直到子数组只有一个元素 */ public class Qu... ...
分类:
编程语言 时间:
2019-06-20 15:48:52
阅读次数:
125
package com.cisco.www.sort;public class QuickSort { public static void quickSort(int[] arr,int L,int R){ int[] p = partition(arr,L,R); quickSort(arr,L ...
分类:
编程语言 时间:
2019-06-17 21:59:23
阅读次数:
156
function quickSort (arr) { if (arr.length === 0) { return []; } let left = []; let right = []; let pivot = arr[0]; for (let index = 1; index < arr.len... ...
分类:
编程语言 时间:
2019-05-24 00:34:19
阅读次数:
134
链接:http://poj.org/problem?id=2299 题意:给出N个数组成的数列A(0 <= A[i] <= 999,999,999),求该数列逆序对的数量。 分析:题目所谓的排序过程其实就是一个冒泡排序的过程。在这里,我们需要知道,冒泡排序所需交换的次数等于该序列逆序对的数量(证明略 ...
分类:
编程语言 时间:
2019-05-09 00:28:40
阅读次数:
168
https://www.jianshu.com/p/6d26d525bb96 https://blog.csdn.net/xjyzxx/article/details/18465661 https://blog.csdn.net/Holmofy/article/details/71168530 ht ...
分类:
其他好文 时间:
2019-05-06 01:30:56
阅读次数:
166
截止到上篇随笔,我们已经学完了c++中所有的基础语句,这意味着,noip普及组的第一题你已经可以拿满分了。为了纪念这个伟大的时刻,今天要上的这道题,是刚刚考完的海淀区区赛第一题。 这道题比较复杂,我当时大概花了半小时做这道题,稍后我会详细讲解。 今天我们终于可以进入算法部分。我们来讲讲一种非常实用的 ...
分类:
编程语言 时间:
2019-05-04 11:44:30
阅读次数:
163
冒泡排序算法 快速排序 javascript function quickSort(arr) { if (arr.length ...
分类:
编程语言 时间:
2019-05-04 00:10:38
阅读次数:
123