快速排序全部算法

2023-11-15

​
// 快速排序.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"
#define MAXSIZE 10
typedef struct {
	int keyWord;
	int otherWord;
}Elemtype;

typedef struct
{
	Elemtype * data;
	int length;

}List,*PList;

void initList(PList L)
{
	L->data = (Elemtype *)malloc(sizeof(Elemtype)*MAXSIZE);
	L->length = 0;
}
void createList(PList L)
{
	initList(L);
	printf("input the total of your nums,but attention,the tips can't beyond %d\n",MAXSIZE);
	scanf_s("%d",&L->length);
	for (int i = 1; i <= L->length; i++)
	{
		scanf_s("%d",&L->data[i].keyWord);
	}
}
int Partition(PList L,int low,int high)
{
	//49 38 65 97 76 13 27 *49 <- 进行排序
	L->data[0].keyWord = L->data[low].keyWord; //将第一个元素作为枢轴点保存
	int pivotkey = L->data[low].keyWord;
	while (low<high) //从最后一个元素开始比较
	{
		if(L->data[high].keyWord>=pivotkey) high--;
			//or refill the nums of low with the nums of high
			L->data[low].keyWord = L->data[high].keyWord;
		if(L->data[low].keyWord<=pivotkey) low++;
			L->data[high].keyWord = L->data[low].keyWord;
	}
	//break shows low==high
	//refill the low position with L->data[0].keyWord
	L->data[low].keyWord = L->data[0].keyWord;
	return low;
}
void QSort(PList L,int low ,int high) //Quickly Sort..
{
	if(low<high) //lenth are more than 1
	{
	int pivotkey = Partition(L,low,high);
	QSort(L,low,pivotkey-1);
	QSort(L,pivotkey+1,high);
	}
}
void QucikSort(PList L)
{
	QSort(L,1,L->length);
}
int _tmain(int argc, _TCHAR* argv[])
{
	List L;
	createList(&L);
	QucikSort(&L);
	for (int i = 1; i <= L.length; i++)
	{
		printf("%d\t",L.data[i].keyWord);
	}
	return 0;
}


​

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

快速排序全部算法 的相关文章

  • FPGA——浅谈跨时钟域

    本篇文章仅用于个人学习 如有雷同 我抄他的 跨时钟域是每个FPGA初学者都会遇到的问题 跨时钟域分情况有以下几种 单bit跨时钟域 慢时钟域到快时钟域 快时钟域到慢时钟域 多bit跨时钟域 单bit跨时钟域 慢时钟域到快时钟域 首先谈谈单b

随机推荐

  • 华为OD机试真题 Java 实现【快速开租建站】【2023Q1 200分】,附详细解题思路

    一 题目描述 当前IT部门支撑了子公司颗粒化业务 该部门需要实现为子公司快速开租建站的能力 建站是指在一个全新的环境部署一套IT服务 每个站点开站会由一系列部署任务项构成 每个任务项部署完成时间都是固定和相等的 设为1 部署任务项之间可能存
  • Java正则表达式工具类

    import org apache commons lang3 StringUtils import org slf4j Logger import org slf4j LoggerFactory import java lang refl
  • Altium designer20(AD20)安装教程

    一 教程是基于本人在安装过程中的截图 步骤都非常详细 PDF教程文档 AD 20安装 提取码 u8mm AD20下载链接 AD20安装包 提取码 v7t6
  • KDD Cup竞赛介绍

    转自 http huzhyi21 blog 163 com blog static 1007396200981534952541 KDD Cup简介 KDD Cup is the annual Data Mining and Knowled
  • Win10系统VS2019+Cmake+gflags2.2.2环境配置

    1 gflags 1 1 简要介绍 gflags是google开源的一套命令行参数解析工具 使用C 开发 具备Python接口 可以替代getopt gflags使用起来比getopt方便 但是不支持参数的简写 例如getopt支持 lis
  • LLM-项目详解-KnowLM:信息抽取大模型

    GitHub zjunlp KnowLM Knowledgable Large Language Models Framework 随着深度学习技术的快速发展 大型语言模型如ChatGPT在自然语言处理领域已经取得了显著的成就 然而 这些大
  • c++的构造函数初始化列表

    C 类构造函数初始化列表 构造函数初始化列表以一个冒号开始 接着是以逗号分隔的数据成员列表 每个数据成员后面跟一个放在括号中的初始化式 例如 class CExample public int a float b 构造函数初始化列表 CEx
  • PCB设计误区-电源是不是必须从滤波电容进入芯片管脚(终结篇)

    PCB设计误区 电源是不是必须从滤波电容进入芯片管脚 终结篇
  • Mysql架构和InnoDB存储引擎流程

    一 整体架构和流程 二 流程图解析 这一共分为四个步骤 1 前台操作触发Mysql服务器执行请求 2 InnoDB存储引擎 缓冲池中完成更新的基本操作 3 Redo Log和BinLog保证事务的可靠性 4 将事务的操作持久化 一 a 前台
  • 在TypeScript使用React forwardRef

    React forwardRef 用于获取子结点的DOM元素引用 当结合TS使用时 需要注意类型断言 import forwardRef useEffect from react const Test forwardRef
  • Verilog十大基本功8 (flipflop和latch以及register的区别)

    来自1 https www cnblogs com LNAmp p 3295441 html 第一次接触Latch是在大二学习数电的时候 那时候Latch被翻译成锁存器 当时还纠结着锁存器和寄存器的区别 要是当时我知道他俩的英文名叫latc
  • Unity3D 画线函数(实现和虚线)

    1 若只需要在调试场景Scene里查看 不需要在Game运行场景看到 可以使用 Debug Draw 这个函数一般在Update Fixed Update LateUpdate里调用 并且不能设置材质 不过可以指定颜色 例子如下 void
  • 蓝牙之十八- bluetooth pair

    蓝牙之十八 bluetooth pair 在蓝牙核心规范2 1之后 蓝牙配对除了传统的PIN Code Pairing方式外 新增了Secure Simple Pairing配对方式 根据核心规范4 2 简单配对主要有两种目的 蓝牙配对过程
  • BDTC2014中国大数据技术大会

    2014中国大数据技术大会32位核心专家演讲PDF下载汇总 重磅资料 下载地址 http download csdn net detail zhongwen7710 8295907 2014中国大数据技术大会32位核心专家演讲PDF目录题目
  • 学习笔记 JavaScript ES6 声明方式const(一)

    今天学习ES6当中定义常量 先来复习下ES5当中是如何定义常量的 通过如下方法在一个对象上定义新的属性来定义一个常量 见如下代码 这个方法有3个参数 第1个参数是在哪个对象上定义属性 第2个参数是属性名称 第3个参数是对象 Object d
  • 孩子学习机器人法则

    现在社会学习机器人的好处有很多 由于小孩子正处于增长知识 发挥自身应有能力的年纪 格物斯坦表示让小孩子学习一门理论前沿性和实用性都较高的机器人编程教育对小孩子未来发展是非常有益的 首先机器人教育不是孤立存在的 机器人技术是多种学科综合的学科
  • Vue 使用 axios post请求后台数据时 404

    今天遇到Vue 使用 axios post请求后台数据时 404 使用postman 就能获取到 网上找了大半天 终于找到了解决方法 传送门 https www jianshu com p b10454ed38ba 转载于 https ww
  • C语言的一个正则表达式pcre

    1 简介 在C C 中 一个比较好的正则表达式是pcre 被很多工具 包括一些商用工具 使用 2 源码下载 安装 2 1 下载 可以从官网http www pcre org 下载 为方便学习 已放在这里http download csdn
  • ctf.show web入门(信息搜集) 1~20

    目录 web1 源码 web2 源码 web3 抓包 web4 robots web5 index phps web6 解压源码泄露 web7 git泄露 web8 svn泄露 web9 vim缓存 web10 cookie web11 域
  • 快速排序全部算法

    快速排序 cpp 定义控制台应用程序的入口点 include stdafx h include stdlib h include stdio h define MAXSIZE 10 typedef struct int keyWord in