快速排序 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()源码及使用实例。

快速排序qsort()源码及使用实例。

《C primer plus》qsort(...)-快速排序法

#include #include #line 4 "1127.c" #define NUM 40 void fillarray(double ar[],int n); void showarra...

快速排序qsort

快速排序[编辑] 快速排序 使用快速排序法对一列数字进行排序的过程 分类 排序算法 数据结构 不定 最差时间复杂度 ...

由PAT 1015德才论(C/C++)引发的关于快速排序qsort的使用注意事项

通过PAT平台的一道题目,结合自身的解题过程,来解释快速排序qsort的使用及其注意事项

快速排序~sort&qsort的用法~以C++

做题的时候经常出现的一种情况就是超时,尤其是排序中的冒泡排序以及快速排序~ 这就要用到sort和qsort,在这里呢~就需要知道它们的用法~~ 一,sort 1,结构体 #include ...

qsort函数(快速排序用法举例)

上一篇讲了sort函数的用法,现在讲讲库函数qsort的用法,qsort是快速排序的库函数,包含头文件#include”stdlib.h”,其函数原型如下:

c语言库函数 qsort(快速排序函数)

今天学习了c语言的库函数 qsort,在此记下他的用法。相关资料: 来自百度百科: 功 能: 使用快速排序例程进行排序 头文件:stdlib.h 用 法: void qsort(...
  • lg305
  • lg305
  • 2016-02-27 14:01
  • 145

快速排序 C语言的qsort 以及 C++的 sort

排序方法很多。在最开始的时候 就只会

编译器函数库自带的快速排序函数qsort

qsort   功 能: 使用快速排序例程进行排序   用 法: void qsort(void base, int nelem, int width, int (*fcmp)(const void ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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