快速排序 qsort

原创 2007年09月18日 22:50:00

还未作详细的分析

/*****************************************
 * 文件名: qsort.cpp
 * 功能: 实现快速排序并测试
 * 创建日期: 2007-9-18
*****************************************/

#include <iostream>
using namespace std;

/****************************************
 * 输入参数:A - 要排序的数列
   p, r - 对A中p至r的范围内的数
   进行排序
 
****************************************/
template <typename T>
void mqsort(T *A, int p, int r)
{
 int q;
 if (p < r)
 {
  q = partition(A, p, r);
  mqsort(A, p, q - 1);
  mqsort(A, q + 1, r);
 }
}

template <typename T>
int partition(T *A, int p, int r)
{
 int i, j;
 T x = A[r];
 
 i = p - 1;
 for (j = p; j < r; j++)
 {
  if (A[j] <= x)
   mswap(A[++i], A[j]);
 }

 mswap(A[++i], A[r]);
 return i;
}

template <typename T>
void mswap(T &a, T &b)
{
 T tmp = a;
 a = b;
 b = tmp;
}

template <typename T>
void display(T *A, int n)   /* 传递的仅仅是数组A第一个元素的地址,并不是整个数组 */
{         /* 当用 int len = sizeof(A) / sizeof(A[0]) 求值时就是 1 */
 int i;

 for (i = 0; i < n; i++)
  cout << A[i] << ' ';
}

int main()
{
 int A[] = { 2, 1, 32, 12, 4, 11, 21, 15 };
 int len = sizeof(A) / sizeof(A[0]);

 display(A, len);
 cout << endl;
 
 mqsort(A, 0, len - 1);

 display(A, len);
 cout << endl;

 return 0;

C快速排序qsort

  • 2013年11月04日 10:32
  • 608B
  • 下载

快速排序qsort和sort的用法

1、用qsort必须先包含或者    (1)使用模型         以下是对10个整形数从小到大排序的实例view plaincopy to clipboardprint?#include     ...

快速排序的库函数qsort与sort的使用方法

qsort 功 能: 使用快速排序例程进行排序     用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(const ...

菜鸟学C语言三:快速排序与调用C语言库函数qsort()

一 快速排序算法 快速排序是对冒泡排序的一种改进,根据就是冒泡排序的特点待排序列越有序,排序效率越高。算法思想基于分治法的:在待排序表中L[1......n]任取一个元素pivot作为基准,通过一趟排...

如何利用C语言中的qsort库函数实现快速排序

登录 | 注册 收藏成功 确定 收藏失败,请重新收藏 确定 标题 标题不能为空 网...
  • deerly_
  • deerly_
  • 2017年01月10日 15:46
  • 346

快速排序qsort,sort函数用法

转自:http://www.cnblogs.com/ForeverJoker/archive/2013/05/25/qsort-sort.html 略有增改 qsort函数、sort函数 (精心整...

qsort快速排序函数

qsort函数简介: 功 能: 使用快速排序例程进行排序 头文件:stdlib.h 用 法: void qsort(void *base,int nelem,int width,int (*fc...
  • BBHHTT
  • BBHHTT
  • 2017年07月30日 17:48
  • 105

利用qsort库函数实现快速排序

排序算法

C程序快速排序之qsort()

qsort包含在头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序。其排序是根据二分法写的,其时间复杂度为n*log(n)。排序之后的结果仍然放在原数组中。使用qsort函数必须自己...

在C语言的库函数中就有快速排序的库函数,即为qsort

之前,我们已经写过快速排序的程序,而在C语言的库函数中就有快速排序的库函数,即为qsort, 其用法如下: 功 能: 快速排序 头文件:stdlib.h 用 法: void qsort(void...
  • Icarus_
  • Icarus_
  • 2015年10月25日 22:53
  • 259
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:快速排序 qsort
举报原因:
原因补充:

(最多只允许输入30个字)