当前位置: 首页 > news >正文

C#实现快速排序算法

 C#实现快速排序算法

以下是C#中的快速排序算法实现示例:

using System;class QuickSort
{// 快速排序入口函数public static void Sort(int[] array){QuickSortRecursive(array, 0, array.Length - 1);}// 递归函数实现快速排序private static void QuickSortRecursive(int[] array, int left, int right){if (left < right){int pivotIndex = Partition(array, left, right);QuickSortRecursive(array, left, pivotIndex - 1);QuickSortRecursive(array, pivotIndex + 1, right);}}// 划分函数private static int Partition(int[] array, int left, int right){int pivot = array[right];int i = left - 1;for (int j = left; j < right; j++){if (array[j] < pivot){i++;Swap(array, i, j);}}Swap(array, i + 1, right);return i + 1;}// 交换数组中的两个元素private static void Swap(int[] array, int i, int j){int temp = array[i];array[i] = array[j];array[j] = temp;}// 打印数组元素public static void PrintArray(int[] array){foreach (var item in array){Console.Write(item + " ");}Console.WriteLine();}// 测试示例static void Main(string[] args){int[] array = { 12, 4, 7, 2, 10, 1, 15, 3, 6, 11 };Console.WriteLine("Original array:");PrintArray(array);Sort(array);Console.WriteLine("Sorted array:");PrintArray(array);}
}

这段代码实现了快速排序算法。在 Sort 函数中,我们首先调用 QuickSortRecursive 函数来递归地执行快速排序。QuickSortRecursive 函数中,我们首先选择一个基准元素(这里选择数组的最后一个元素作为基准),然后根据基准元素将数组分为两部分,左侧部分小于基准,右侧部分大于等于基准。然后再分别对左右两部分递归执行快速排序。

Partition 函数负责实现划分步骤,它遍历数组,将小于基准的元素放在左侧,大于等于基准的元素放在右侧,并返回基准的最终位置。

Swap 函数用于交换数组中的两个元素。

PrintArray 函数用于打印数组元素。

Main 函数中,我们创建一个示例数组,并调用 Sort 函数对其进行排序,然后打印排序后的结果。

相关文章:

C#实现快速排序算法

C#实现快速排序算法 以下是C#中的快速排序算法实现示例&#xff1a; using System;class QuickSort {// 快速排序入口函数public static void Sort(int[] array){QuickSortRecursive(array, 0, array.Length - 1);}// 递归函数实现快速排序private static void QuickSortRecu…...

upload-labs通关记录

文章目录 前言 1.pass-012.pass-023.pass-034.pass-045.pass-056.pass-067.pass-078.pass-089.pass-0910.pass-1011.pass-1112.pass-1213.pass-1314.pass-1415.pass-1516.pass-1617.pass-1718.pass-1819.pass-19 前言 本篇文章记录upload-labs中&#xff0c;所有的通过技巧和各…...

Nginx实现高并发

注&#xff1a;文章是4年前在自己网站上写的&#xff0c;迁移过来了。现在看我之前写的这篇文章&#xff0c;描述得不是特别详细&#xff0c;但描述了Nginx的整体架构思想。如果对Nginx玩得透得或者想了解深入的&#xff0c;可以在网上找找其他的文章。 ......................…...

华为荣耀终端机试真题

文章目录 一 、字符展开(200分)1.1 题目描述1.2 解题思路1.3 解题代码二、共轭转置处理(100分)2.1 题目描述2.3 源码内容一 、字符展开(200分) 1.1 题目描述 // 64 位输出请用 printf(“%lld”)给定一个字符串,字符串包含数字、大小写字母以及括号(包括大括号、中括号…...

C++ Qt开发:QNetworkInterface网络接口组件

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍如何运用QNetworkInterface组件实现查询详细的…...

Luajit 2023移动版本编译 v2.1.ROLLING

文章顶部有编好的 2.1.ROLLING 2023/08/21版本源码 Android 64 和 iOS 64 luajit 目前最新的源码tag版本为 v2.1.ROLLING on Aug 21, 2023应该是修正了很多bug, 我是出现下面问题才编的. cocos2dx-lua 游戏 黑屏 并报错: [LUA ERROR] bad light userdata pointer 编…...

c++ 常用新特性总结【c++11】,【c++14】,【c++17】,【c++20】

文章目录 常用的c11新特性1.自动推导类型(auto)2.lambda表达式3.智能指针4.范围for循环5.右值引用 - 移动语义6.类型别名7.constexpr8.static_assert(静态断言)9.nullptr10.列表初始化11.继承构造函数12.显示虚函数重载(override)13.final14.变长模板参数15.新的容器与算法16.强…...

Feign实现微服务间远程调用续;基于Redis实现消息队列用于延迟任务的处理,Redis分布式锁的实现;(黑马头条Day05)

目录 延迟任务和定时任务 使用Redis设计延迟队列原理 点评项目中选用list和zset两种数据结构进行实现 如何缓解Redis内存的压力同时保证Redis中任务能够被正确消费不丢失 系统流程设计 使用Feign实现微服务间的任务消费以及文章自动审核 系统微服务功能介绍 提交文章-&g…...

CSS 常见属性设置

一. 文本属性 1.1. 装饰线 text-decoration text-decoration有如下常见取值: none&#xff1a;无任何装饰线&#xff08;可以去除a元素默认的下划线&#xff09;underline&#xff1a;下划线overline&#xff1a;上划线line-through&#xff1a;中划线&#xff08;删除线&…...

docker学习入门

1、docker简介 docker官网&#xff1a; www.docker.com dockerhub官网&#xff1a; hub.docker.com docker文档官网&#xff1a;docs.docker.com Docker是基于Go语言实现的云开源项目。 Docker的主要目标是&#xff1a;Build, Ship and Run Any App, Anywhere(构建&…...

蓝牙系列七:开源蓝牙协议栈BTStack数据处理

继续蓝牙系列的研究。 在上篇博客,通过阅读BTStack的源码,大体了解了其框架,对于任何一个BTStack的应用程序都有一个main函数,这个main函数是统一的。这个main函数做了某些初始化之后,最终会调用到应用程序提供的btstack_main,在btstack_main里面首先做一些初始化,然后…...

数据仓库作业一:第1章 绪论

目录 一、给出下列英文短语或缩写的中文名称&#xff0c;并简述其含义。二、简述操作型数据与分析型数据的主要区别。三、简述数据仓库的定义。四、简述数据仓库的特征。五、简述主题的定义。六、简述元数据的概念。七、简述数据挖掘的主要任务。八、简述数据挖掘的主要步骤。九…...

spring aop中获取request和response

Spring AOP 操作中如何使用request和response 实际使用时&#xff0c;如果方法一不行&#xff0c;请使用方法二 方法一 HttpServletRequest request ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); HttpServletResponse respons…...

在Mac上安装nginx+rtmp 本地服务器

需要使用终端命令&#xff0c;如果没有Homebrew&#xff0c;要安装Homebrew,执行&#xff1a; ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 一、安装Nginx 1、先clone Nginx项目到本地&#xff1a; brew tap de…...

解决ChatGPT发送消息没有反应

ChatGPT发消息没反应 今天照常使用ChatGPT来帮忙码代码&#xff0c;结果发现发出去的消息完全没有反应&#xff0c;即不给我处理&#xff0c;也没有抱任何的错误&#xff0c;按浏览器刷新&#xff0c;看起来很正常&#xff0c;可以查看历史对话&#xff0c;但是再次尝试还是一…...

windows关闭copilot预览版

如果用户不想在windows系统当中启用Copilot&#xff0c;可以通过以下三种方式禁用。 第一种&#xff1a;隐藏Copilot 按钮 右键点击任务栏&#xff0c;取消勾选“显示 Copilot&#xff08;预览版&#xff09;按钮”&#xff0c;任务栏则不再显示&#xff0c;用户可以通过快捷键…...

基于Java的社区买菜系统(Vue.js+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.1.1 数据中心模块2.1.2 菜品分类模块2.1.3 菜品档案模块2.1.4 菜品订单模块2.1.5 菜品收藏模块2.1.6 收货地址模块 2.2 可行性分析2.3 用例分析2.4 实体类设计2.4.1 菜品分类模块2.4.2 菜品档案模块2.4.3…...

html--心花怒放

代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>Canvas 绘制一个❤</title><link rel"shortcut icon" href"../../assets/images/icon/favicon.ico" type"ima…...

FPGA的配置状态字寄存器Status Register

目录 简介 状态字定义 Unknown Device/Many Unknow Devices 解决办法 一般原因 简介 Xilinx的FPGA有多种配置接口&#xff0c;如SPI&#xff0c;BPI&#xff0c;SeletMAP&#xff0c;Serial&#xff0c;JTAG等&#xff1b;如果从时钟发送者的角度分&#xff0c;还可以…...

【HarmonyOS Arkts笔记】http网络请求封装

common.ts export default class CommonConstant {/*** The host address of the server.*/static readonly SERVER: string 请求接口地址;/*** The request success code.*/static readonly SUCCESS_CODE: number 200;/*** Read timeout.*/static readonly READ_TIMEOUT: n…...

[CentOS 7实战] 从零部署高可用TeamSpeak语音服务器

1. 环境准备与基础配置 在CentOS 7上部署TeamSpeak服务器前&#xff0c;需要做好充分的环境准备。我建议使用至少2核4G配置的云服务器&#xff0c;实测这个配置可以稳定支持50人同时在线的语音通信。如果是大型游戏社区使用&#xff0c;建议选择4核8G以上的配置。 首先需要检查…...

Qwen3-8B性能实测:在RTX 4090上跑出40 tokens/s,性价比之选

Qwen3-8B性能实测&#xff1a;在RTX 4090上跑出40 tokens/s&#xff0c;性价比之选 1. 引言&#xff1a;消费级显卡上的大模型新选择 当大语言模型逐渐成为AI应用的核心组件&#xff0c;一个现实问题摆在开发者面前&#xff1a;如何在有限的硬件资源上获得最佳的性能体验&…...

2026奇点智能技术大会核心洞察(AGI驱动的产品设计黄金三角模型首次公开)

第一章&#xff1a;2026奇点智能技术大会&#xff1a;AGI与产品设计 2026奇点智能技术大会(https://ml-summit.org) AGI驱动的产品范式迁移 传统产品设计依赖用户调研、A/B测试与迭代优化&#xff0c;而AGI系统正推动设计流程向“意图-生成-验证-演进”闭环跃迁。在大会现场演…...

如何打造高效专业的多媒体播放器:MPC-BE深度技术解析

如何打造高效专业的多媒体播放器&#xff1a;MPC-BE深度技术解析 【免费下载链接】MPC-BE MPC-BE – универсальный проигрыватель аудио и видеофайлов для операционной системы Windows. 项目地址: htt…...

如何在电脑上玩手游:Scrcpy Mask终极指南与实战技巧

如何在电脑上玩手游&#xff1a;Scrcpy Mask终极指南与实战技巧 【免费下载链接】scrcpy-mask A Scrcpy client in Rust, Bevy and React, aimed at providing mouse and key mapping to control Android device, similar to a game emulator 项目地址: https://gitcode.com/…...

FPGA数码管驱动避坑指南:从共阴共阳到分时复用,新手最容易搞错的5个点

FPGA数码管驱动避坑指南&#xff1a;从共阴共阳到分时复用&#xff0c;新手最容易搞错的5个点 第一次用FPGA驱动数码管时&#xff0c;看着自己写的代码让显示器上跳出乱码或者完全不亮&#xff0c;这种挫败感我太熟悉了。数码管看似简单&#xff0c;但实际驱动时隐藏的坑比想象…...

免费开源CAD软件LibreCAD:专业2D绘图工具终极指南

免费开源CAD软件LibreCAD&#xff1a;专业2D绘图工具终极指南 【免费下载链接】LibreCAD LibreCAD is a cross-platform 2D CAD program written in C17. It can read DXF/DWG files and can write DXF/PDF/SVG files. It supports point/line/circle/ellipse/parabola/hyperbo…...

AGI芯片架构迎来临界点:2026奇点大会公布的7nm类脑SoC实测数据首度解禁

第一章&#xff1a;2026奇点智能技术大会&#xff1a;AGI与硬件设计 2026奇点智能技术大会(https://ml-summit.org) AGI架构演进的关键拐点 2026年大会首次系统性披露了面向通用人工智能&#xff08;AGI&#xff09;的异构协同计算范式&#xff0c;其核心突破在于将认知推理层…...

VAP跨平台特效动画引擎:解决复杂动画性能瓶颈的终极方案

VAP跨平台特效动画引擎&#xff1a;解决复杂动画性能瓶颈的终极方案 【免费下载链接】vap VAP是企鹅电竞开发&#xff0c;用于播放特效动画的实现方案。具有高压缩率、硬件解码等优点。同时支持 iOS,Android,Web 平台。 项目地址: https://gitcode.com/gh_mirrors/va/vap …...

探索Chaplin:解锁实时唇语识别的本地AI推理新范式

探索Chaplin&#xff1a;解锁实时唇语识别的本地AI推理新范式 【免费下载链接】chaplin A real-time silent speech recognition tool. 项目地址: https://gitcode.com/gh_mirrors/chapl/chaplin Chaplin作为一款完全本地运行的实时无声语音识别工具&#xff0c;通过读取…...