当前位置: 首页 > 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…...

南北阁 Nanbeige 4.1-3B 开源模型应用:政务问答系统本地化部署实践

南北阁 Nanbeige 4.1-3B 开源模型应用&#xff1a;政务问答系统本地化部署实践 想体验一个能流畅对话、还能“看见”它思考过程的本地AI助手吗&#xff1f;今天&#xff0c;我们就来聊聊如何将南北阁&#xff08;Nanbeige&#xff09;4.1-3B这个轻量又聪明的国产模型&#xff…...

Material Icon Library开源贡献指南:如何参与项目开发和维护

Material Icon Library开源贡献指南&#xff1a;如何参与项目开发和维护 【免费下载链接】material-icon-lib Library containing over 2000 material vector icons that can be easily used as Drawable or as a standalone View. 项目地址: https://gitcode.com/gh_mirrors…...

从科幻小说到产品设计:如何用‘What-If’思维模型,提前5年预判技术趋势

科幻思维解码&#xff1a;用未来叙事重构产品创新逻辑 当科幻遇见产品&#xff1a;一场跨越时空的思维实验 1982年上映的《银翼杀手》描绘了2019年的洛杉矶街头全息广告与仿生人共存的世界&#xff0c;这个曾被视作天方夜谭的设定&#xff0c;如今在增强现实技术和人形机器人领…...

用Python给图片藏个小秘密:手把手教你实现LSB隐写术(附完整代码)

用Python给图片藏个小秘密&#xff1a;手把手教你实现LSB隐写术&#xff08;附完整代码&#xff09; 你是否想过在朋友圈分享的照片里藏一段悄悄话&#xff1f;或是把重要信息伪装成普通图片&#xff1f;这听起来像间谍电影里的情节&#xff0c;但用Python只需几十行代码就能实…...

Proteus仿真+实物调试:手把手教你搞定STC单片机数码管动态显示的‘鬼影’与亮度不均

STC单片机数码管动态显示实战&#xff1a;从仿真到实物的‘鬼影’消除指南 数码管动态显示是嵌入式开发中的经典课题&#xff0c;但许多开发者在Proteus仿真完美运行后&#xff0c;烧录到STC89C51RC等实物单片机时却遭遇了"鬼影"、亮度不均等棘手问题。本文将带你深入…...

Hypnos-i1-8B惊艳案例:用自然语言描述→自动生成LaTeX+Python可执行代码

Hypnos-i1-8B惊艳案例&#xff1a;用自然语言描述→自动生成LaTeXPython可执行代码 1. 模型能力概览 Hypnos-i1-8B是一款基于量子噪声注入训练的8B参数开源大模型&#xff0c;专为复杂逻辑推理和数学问题求解而设计。它能够理解自然语言描述&#xff0c;并直接生成可执行的La…...

老系统安全加固指南:以久草CMS V1.9为例,手把手教你修复后台文件写入与CSRF组合漏洞

老系统安全加固实战&#xff1a;从漏洞分析到修复的完整方案 当企业运维人员接手一个历史悠久的CMS系统时&#xff0c;面临的不仅是技术债务&#xff0c;更是一场与时间赛跑的安全保卫战。以某CMS V1.9为例&#xff0c;这个发布于多年前的系统至今仍在不少中小型网站服役&#…...

B站视频转文字终极指南:免费开源神器5分钟快速上手

B站视频转文字终极指南&#xff1a;免费开源神器5分钟快速上手 【免费下载链接】bili2text Bilibili视频转文字&#xff0c;一步到位&#xff0c;输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 还在为手动整理B站视频笔记而烦恼吗&#xff1…...

别再暴力解压了!用python-docx库精准提取Word文档内嵌图片(附源码)

用python-docx精准提取Word文档图片的工程实践 在文档自动化处理领域&#xff0c;Word文档中的图片提取是个高频需求。许多开发者第一反应是用zipfile解压.docx文件&#xff0c;然后在解压后的文件夹中寻找图片资源。这种方法看似直接&#xff0c;实则存在严重缺陷——你无法确…...

CILQR:自动驾驶约束优化的突破性算法实现指南 [特殊字符]

CILQR&#xff1a;自动驾驶约束优化的突破性算法实现指南 &#x1f697; 【免费下载链接】Constrained_ILQR 项目地址: https://gitcode.com/gh_mirrors/co/Constrained_ILQR 在自动驾驶技术快速发展的今天&#xff0c;约束迭代线性二次调节器&#xff08;Constrained …...