C#快速排序算法实例分析
作者:lele 发布时间:2023-06-17 00:30:00
标签:C#,快速排序
本文实例讲述了C#快速排序算法。分享给大家供大家参考。具体实现方法如下:
public static int[] QuickSort(int[] arr)
{
if (arr.Length <= 1)
return arr;
int pivot = arr.Length - 1;
int[] less = GetLessThanEqualToPivot(arr, pivot);
int[] greater = GetGreaterThanPivot(arr, pivot);
return Concatenate(QuickSort(less),arr[pivot],QuickSort(greater));
}
public static int[] Concatenate(int[] less,int pivotElement,int[] greater)
{
List<int> _result = new List<int>();
_result.AddRange(less);
_result.Add(pivotElement);
_result.AddRange(greater);
return _result.ToArray();
}
public static int[] GetLessThanEqualToPivot(int[] arr, int pivot)
{
List<int> _result = new List<int>();
for (int i = 0; i < arr.Length - 1; i++)
{
if (arr[i] <= arr[pivot])
{
_result.Add(arr[i]);
}
}
return _result.ToArray();
}
public static int[] GetGreaterThanPivot(int[] arr, int pivot)
{
List<int> _result = new List<int>();
for (int i = 0; i < arr.Length - 1; i++)
{
if (arr[i] > arr[pivot])
{
_result.Add(arr[i]);
}
}
return _result.ToArray();
}
希望本文所述对大家的C#程序设计有所帮助。


猜你喜欢
- dynamic是FrameWork4.0的新特性。dynamic的出现让C#具有了弱语言类型的特性。编译器在编译的时候不再对类型进行检查,编
- 前言String可以说是Java中使用最多最频繁、最特殊的类,因为同时也是字面常量,而字面常量包括基本类型、String类型、空类型。一.
- 在查询时经常出现一对多”的关系,所有会出现嵌套对象的情况,Mybatis在resultMap提供了collection标
- 一.Worker Thread模式Worker的意思是工作的人,在Worker Thread模式中,工人线程Worker thread会逐个
- 前言Email就是电子邮件,我们平常使用的QQ邮箱,网易邮箱,Foxmail都是用来收发邮件的,利用Java程序也可以完成收发电子邮件的功能
- For-Each循环For-Each循环也叫增强型的for循环,或者叫foreach循环。For-Each循环是JDK5.0的新特性(其他新
- 最近学了点kotlin的相关知识,顺手写了一个简单的五子棋单机游戏,分享给大家吧!有兴趣的可以看看五子棋界面package wjc.kotl
- 先看看效果Like This↓一、公共WiFi 公用电脑什么的在我们日常在线上工作、玩耍时,不论开电脑、登录淘宝、玩网游统统都会用到键盘输入
- package TOOLS;import java.io.BufferedReader;import java.io.File;import
- 算法简介迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学迪家迪杰斯特拉于1959年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶
- 二维数组实现数字拼图,供大家参考,具体内容如下二维数组可以自己随意定义大小,通过方法判断来实现对所有的数字进行随机打乱,并可以通过移动来正确
- 前言我们在实际项目中,除了会碰到一对一的情况,还有一对多的情况,比如一个用户可以有多辆车,而一辆车只能有一个用户等等,今天我们就来一起学习下
- 译文链接: https://www.infoworld.com/art...AutoMapper 是一个非常流行的 object-to-ob
- android电话管理器(TelephonyManger)实例:TelephonyManger是管理电话状态、网络信息的服务类。添加权限:&
- 在使用STL容器(比如map、list、vector等)的时候,是用放一个对象还是放一个对象指针,即是用vector<int>还
- c#开发cad如何预览图块1.定义变量的方法代码如下2. 获取GetDwgImag图像的方法代码3.实现显示DWG文件的方法代码方
- 1 简介之前我们在文章《K8ssandra入门-详细记录在Linux上部署K8ssandra到Kubernetes》成功地在Ubuntu上安
- 本文基于Java实现了一个简单的单词本安卓a
- 前言在Java 8之前,默认情况下,接口中的所有方法都是公共的和抽象的。但是这一限制在Java 8中被打破了,Java 8允许开发人员在接口
- 需求:有一个列表,列表中有一个edittext(只能输整形),外部有一个整形变量Int,每次改变列表中其中一项的edittext的值时,外部