1、快速排序
通过选择轴值,一次划分都能确定该轴值得位置,其时间复杂度最好的情况(每次划分都恰好将区间平分为等长的两半)下为Ο(nlgn),最差情况(每次划分将区间分成0与n-1)为O(n^2)。其空间复杂度考虑递归的栈深为O(lgn)。
1 /********************...
分类:
其他好文 时间:
2014-05-16 19:24:46
阅读次数:
361
题目: Sort a linked list inO(nlogn) time using
constant space complexity.解题思路: 复杂度为O(n* logn)
的排序算法有:快速排序、堆排序、归并排序。对于链表这种数据结构,使用归并排序比较靠谱。递归代码如下:代码: /...
分类:
其他好文 时间:
2014-05-16 05:49:04
阅读次数:
266
堆的概念
堆是具有下列性质的完全二叉树:每个节点的值都大于或等于其左右孩子结点的值,称为大顶堆;或着每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。 堆排序
堆排序(Heap Sort)就是利用堆(假设利用大顶堆)进行排序的方法。它的基本思想是,将待排序的序列构造成一个大顶堆。此时,整个序列...
分类:
其他好文 时间:
2014-05-15 16:18:31
阅读次数:
329
嗯,数据结构中,排序是不可少的,下面给出java版本的排序...
分类:
编程语言 时间:
2014-05-15 14:44:49
阅读次数:
330
前面三篇文章分别介绍了插入排序、选择排序和,今天将最后两个排序讲完,分别是归并排序和基数排序。...
分类:
其他好文 时间:
2014-05-14 01:13:39
阅读次数:
346
设A[1…n]是一个包含n个不同数的数组。如果在iA[j],则(i,j)就称为A中的一个逆序对(inversion)【《算法导论》2-4】
现给出一个数列,求该数列中的逆序对(逆序对 )
利用归并排序的方法我们给出如下算法://
// main.cpp
// CpushTest
//
// Created by Ellen on 14-5-11.
// Copyright (c...
分类:
其他好文 时间:
2014-05-13 22:53:12
阅读次数:
340
div{}#id{}.class_name{}CSS引入方式1. 写在标签内部的
style=" " 属性里2. 写在部分中的3. 写在4. 在中使用 @import url(**.css); 导入 CSS 别烧了分号!!!!!元素标签
并排在一行 使用 float CSS 属性 D...
分类:
Web程序 时间:
2014-05-13 19:03:59
阅读次数:
400
#!/bin/bash
if [ $# -ne 2 -a $# -ne 1 ] ;then
echo "usage: `basename $0 ` [n] input file "
echo
exit
fi
if [ $# -eq 1 ];then
I_TOP=10
I_FILE=$1
fi...
分类:
系统相关 时间:
2014-05-13 06:21:24
阅读次数:
454
归并排序是分治法的典型举例。分治法的思想是,将原有问题分解为几个规模较小但类似于原问题的子问题,递归的求解这些子问题,然后再合并这些子问题的解来建立原问题的解。分治模式在每层递归时都有三个步骤:分解原问题为若干子问题,这些子问题是原问题的规模较小的实例。解决这些子问题,递归地求解各子问题。然而,若子...
分类:
其他好文 时间:
2014-05-12 19:56:28
阅读次数:
265