快速排序算法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. 备份与恢复(1)— 概述

    备份与恢复(1)— 概述 2021-01-17 11:20  EniNiemand  阅读(91) […]...

  2. B – 来找一找吧 HihoCoder – 1701(排列组合 + 同余差值相同)

    这次到渣渣问桶桶了。。。 准备给你n个数a1, a2, … an,桶桶你能从中找出m个特别的整数吗 […]...

  3. 大数据精华版 – 寻找心的巨人

    大数据精华版 《大数据时代(精华版)》作者:[美]维克托·迈尔·舍恩伯格著,周涛译 内容简介:    《大数据 […]...

  4. 深入浅出新一代跨平台抓包&调式利器Fiddler Everywhere

    Fiddler是我们在Windows上非常熟悉的一款抓包工具,而基于Angular和.NET Core的Fid […]...

  5. RHCSA/RHCE Red Hat Linux认证学习指南(第6版):EX200 & EX300

    《RHCSA/RHCE Red Hat Linux认证学习指南(第6版):EX200 & EX300》 […]...

  6. 国内还不错的量化交易平台 – Hello_BeautifulWorld

    国内还不错的量化交易平台               1. JoinQuant聚宽量化交易平台 https:/ […]...

  7. 大家好。 – 杨兴亚

    大家好。 2008-10-21 13:02  杨兴亚  阅读(169)  评论(1)  编辑  收藏  举报 […]...

  8. RGB颜色空间、HSV颜色空间的理解 – warmbeast

    HSV是把H(色相),S(饱和度),V(亮度)当做色值来定位颜色的空间。 1、HSV模型  色相:取值范围是0 […]...

随机推荐

  1. 对于计算机考研似乎每个人都有话说

    正方说   计算机专业考研是很有必要的,因为本科期间主要学习理论知识,对计算机学习的深度还不够深,包括在独立思 […]...

  2. vue-router入门 – sea的博客

    vue-router入门 vue-router入门 概述 vue-router是Vue.js官方的路由插件,它 […]...

  3. 10分钟教你用VS2017将代码上传到GitHub

    前言 关于微软的Visual Studio系列,真可谓是宇宙最强IDE了。不过,像小编这样的菜鸟级别也用不到几 […]...

  4. HEX文件合并方法

    通过开发嵌入式系统时,可能需要boot引导应用程序,一个小工程就需要两个hex文件进行合并,但是生产的时候都是 […]...

  5. 人工智能-图像识别技术-OCR

    OCR OCR(Optical Character Recognition):光学字符识别(英语:Optica […]...

  6. 机器学习中各种熵的定义及理解

    机器学习领域有一个十分有魅力的词:熵。然而究竟什么是熵,相信多数人都能说出一二,但又不能清晰的表达出来。 而笔 […]...

  7. C#使用CefSharp开源库开发Chrome 浏览器

            一、介绍         这个东西我以前没有接触过,但是公司项目里面有用到这个东西,所以就顺便 […]...

  8. Docker 入门及安装[Docker 系列-1]

        docker 如日中天,这不是单纯的炒概念,docker 确确实实解决了开发与运维的痛点,因此在企业开 […]...

展开目录

目录导航