列举你所知道的排序方法,请写出快速排序的伪代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了列举你所知道的排序方法,请写出快速排序的伪代码相关的知识,希望对你有一定的参考价值。

排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)

快速排序的伪代码:

/ /使用快速排序方法对a[ 0 :n- 1 ]排序

从a[ 0 :n- 1 ]中选择一个元素作为m i d d l e,该元素为支点

把余下的元素分割为两段left 和r i g h t,使得l e f t中的元素都小于等于支点,而right 中的元素都大于等于支点

递归地使用快速排序方法对left 进行排序

递归地使用快速排序方法对right 进行排序

所得结果为l e f t + m i d d l e + r i g h t

伪代码:

 1 quicksort(A, lo, hi)
 2   if lo < hi
 3     p = partition(A, lo, hi)
 4     quicksort(A, lo, p - 1)
 5     quicksort(A, p + 1, hi)
 6 
 7 partition(A, lo, hi)
 8     pivot = A[hi]
 9     i = lo //place for swapping
10     for j = lo to hi - 1
11         if A[j] <= pivot
12             swap A[i] with A[j]
13             i = i + 1
14     swap A[i] with A[hi]
15     return i

http://www.cnblogs.com/baokang/p/4737492.html

java面试题1排序算法

java面试题2排序算法

以上是关于列举你所知道的排序方法,请写出快速排序的伪代码的主要内容,如果未能解决你的问题,请参考以下文章

写出一种排序算法(要写出代码),并说出优化它的方法。

4.3 每日一练

快速排序就这么简单

数据结构和算法-面试题

【数据结构】请写出以下AOV网的拓扑排序序列

你所不知道的冒泡排序