快速排序算法C语言实现(源代码) - ultimate

ultimate 2021-12-29 原文


快速排序算法C语言实现(源代码)


快速排序算法

快速排序算法在很多的数据结构与算法书中都有讲解,关于它不过多介绍了.

快速排序算法的时间复杂度最坏情况下是O(n^2)也就是每次哨兵几乎都不起作用的情况下,平均时间复杂度是O(nlgn).

 

快速排序算法

#include<stdio.h>
#include
<stdlib.h>
#include
<time.h>
#define MAX  100
/*
快速排序算法的两个主要步骤,分割(Partition和QuickSort)
*/
int Partition(int A[],int p,int q);
int QuickSort(int A[],int p,int q);
int test();
int main()
{
 test();
 
return 0;
}
/*
一个很简单的测试函数
*/
int test()
{
 
int a[MAX];
 
int i;
 srand((
int)time(0));
 
for(i = 0;i<MAX;i++)
 {
  
  a[i] 
= rand();
 }
 
for(i = 0;i<MAX;i++)
  printf(
%d\t,a[i]);
 printf(
\n);
 QuickSort(a,
0,MAX1);
 
for(i = 0;i<MAX;i++)
  printf(
%d\t,a[i]);
 printf(
\n);

}
/*
Partition步骤中哨兵选取的是最后一个元素作为哨兵
*/
int Partition(int A[],int p,int q)
{
 
int i,j,x,t;
 x 
= A[q];
 i 
= p1;
 
for (j = p;j<=q;j++)
  
if(A[j] < x)
  {
   i
++;
   t 
= A[j];
   A[j] 
= A[i];
   A[i] 
= t;
  }
 A[q] 
= A[i+1];
 A[i
+1= x;
 
return i+1;
}
/*
递归调用的QuickSort程序
*/
int QuickSort(int A[],int p,int r)
{
 
if(p<r)
 {
  
int q = Partition(A,p,r);
  QuickSort(A,p,q
1);
  QuickSort(A,q
+1,r);
 }
}

 

 

posted on
2009-12-03 07:58 
ultimate 
阅读(9177
评论(2
编辑 
收藏 
举报

 

版权声明:本文为ultimate原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/ultimate/archive/2009/12/03/1615819.html

快速排序算法C语言实现(源代码) - ultimate的更多相关文章

  1. 3种方法轻松处理php开发中emoji表情的问题 – 坚持奔跑在路上

    3种方法轻松处理php开发中emoji表情的问题 背景 做微信开发的时候就会发现,存储微信昵称必不可少。 可这 […]...

  2. sqlmap-注入神器的用法 – 一颗尘土

    sqlmap-注入神器的用法 一、什么是sqlmap? sqlmap是一个开源的渗透测试工具,可以用来进行自动 […]...

  3. 浅谈云计算SPI(SaaS、PaaS、IaaS) – 罗穆瑞页首自改代码

    浅谈云计算SPI(SaaS、PaaS、IaaS) 前言   The other day, I arrived […]...

  4. AdminLTE 前端开源框架介绍 – jack_Meng

    AdminLTE 前端开源框架介绍 1.AdminLTE介绍 AdminLTE是一款建立在bootstrap和 […]...

  5. mongoDB5–mongoDB增删改查 – gaomatlab

    mongoDB5–mongoDB增删改查 之前我们探讨了mongodb的“增删改查”,要知道,我们 […]...

  6. 题解 SP8284 WEIGHT – Weighted Sum

    题解 SP8284 WEIGHT – Weighted Sum SP8284 WEIGHT  […]...

  7. JAVA:int month = n.get(Calendar.MONTH)+1;为何要加1?

    1 import java.util.*; 2 public class DateClass 3 { 4 pu […]...

  8. 将Word表格中单元格中的文字替换成对应的图片 – 雨-夜

    示例 原文件结构: 替换后文档结构: 软件截图: 代码: using System; using System […]...

随机推荐

  1. 关于程序猿的那些笑话 – E8software

    关于程序猿的那些笑话 程序员一直被视为社会自嘲群体的代表,大多数底层程序员都自嘲为程序猿,或者屌丝。而以下几则 […]...

  2. BP神经网络详细推导

    一、神经元(Neuron) 一个简单的神经元数学模型如下:     一个神经元由多个输入x、一个偏置项b和一个 […]...

  3. Java数据结构和算法(一)——简介

    Java数据结构和算法(一)——简介   本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里 […]...

  4. Appium自动化测试学习笔记 —— Appium原理

    Appium简介 开源、跨平台、多语言支持的移动应用自动化工具 可测对象 原生应用APP、混合应用APP、移动 […]...

  5. MIT线性代数公开课学习笔记第11~15课(矩阵空间、秩1矩阵和小世界图,图和网络,正交向量与子空间,子空间投影)

    十一、矩阵空间、秩1矩阵和小世界图 1、矩阵空间 对于全体\(n\times n\)大小的实矩阵构成的集合\( […]...

  6. 最新incaseformat 病毒删除文件恢复

    联系:手机/微信(+86 13429648788) QQ(107644445) 标题:incaseformat […]...

  7. ESXi主机性能问题

    服务器遇到一个问题   百度了下 基本发现是 四路的 windows 服务器的问题. 造成一些 性能降低. 然 […]...

  8. Python学习:1.快速搭建python环境

    一、安装python   现在python有两个比较大的版本一个是python3.x一个是python2.x, […]...

展开目录

目录导航