zoukankan
html css js c++ java
快速排序(C#数据结构学习十)
using
System;
using
System.Collections.Generic;
using
System.Text;
namespace
SoloDataStructure
{
class
MyQuickSort
{
/**/
///
<summary>
///
快速排序算法
///
</summary>
///
快速排序为不稳定排序,时间复杂度O(nlog2n),为同数量级中最快的排序方法
///
<param name="arr">
划分的数组
</param>
///
<param name="low">
数组低端上标
</param>
///
<param name="high">
数组高端下标
</param>
///
<returns></returns>
static
int
Partition(
int
[] arr,
int
low,
int
high)
{
//
进行一趟快速排序,返回中心轴记录位置
//
arr[0] = arr[low];
int
pivot
=
arr[low];
//
把中心轴置于arr[0]
while
(low
<
high)
{
while
(low
<
high
&&
arr[high]
>=
pivot)
--
high;
//
将比中心轴记录小的移到低端
Swap(
ref
arr[high],
ref
arr[low]);
while
(low
<
high
&&
arr[low]
<=
pivot)
++
low;
Swap(
ref
arr[high],
ref
arr[low]);
//
将比中心轴记录大的移到高端
}
arr[low]
=
pivot;
//
中心轴移到正确位置
return
low;
//
返回中心轴位置
}
static
void
Swap(
ref
int
i,
ref
int
j)
{
int
t;
t
=
i;
i
=
j;
j
=
t;
}
static
void
QuickSort(
int
[] arr,
int
low,
int
high)
{
if
(low
<
high
-
1
)
//
当 arr[low,high]为空或只一个记录无需排序
{
int
pivot
=
Partition(arr,low,high);
QuickSort(arr,low,pivot
-
1
);
QuickSort(arr,pivot
+
1
,high);
}
}
static
void
Main(
string
[] args)
{
int
[] arr
=
new
int
[]
{
54
,
62
,
99
,
14
,
28
,
1
,
8
,
77
,
99
,
3
,
110
}
;
QuickSort(arr,
0
, arr.Length
-
1
);
Console.Write(
"
Data After QuickSort:
"
);
foreach
(
int
i
in
arr)
{
Console.Write(i
+
"
,
"
);
}
Console.ReadLine();
}
}
}
查看全文
相关阅读:
ChaosBlade x SkyWalking 微服务高可用实践
工商银行基于 Dubbo 构建金融微服务架构的实践-服务发现篇
阿里 双11 同款流控降级组件 Sentinel Go 正式 GA,助力云原生服务稳稳稳
我在阿里巴巴做 Serverless 云研发平台
「更高更快更稳」,看阿里巴巴如何修炼容器服务「内外功」
「云原生上云」后的聚石塔是如何应对 双11 下大规模应用挑战的
从零入门 Serverless | SAE 的远程调试和云端联调
利用 Arthas 解决启动 StandbyNameNode 加载 EditLog 慢的问题
Arthas 实践——生产环境排查 CPU 飚高问题
RocketMQ 很慢?引出了一个未解之谜
原文地址:https://www.cnblogs.com/solo/p/610139.html
最新文章
开源的分布式事务解决方案-Seata
github开源电商平台(续)-实战调试
github上star42.4K的开源电商平台
消息队列之九问九答
Java之线程本地变量ThreadLocal
2020年最新版区块链面试题(续)
HotSpot类模型之ArrayKlass
HotSpot类模型之InstanceKlass
HotSpot源码分析之类模型
HotSpot源码分析之C++对象的内存布局
热门文章
HotSpot的启动过程(配视频进行源码分析)
调试HotSpot源代码(配视频)
在Ubuntu 16.04上编译OpenJDK8的源代码(配视频)
Asp.Net Core学习笔记:入门篇
不吹不黑,跨平台框架AspNetCore开发实践杂谈
高性能MySQL之高级特性
高性能MySQL之查询性能优化
高性能MySQL之创建高性能的索引篇
高性能MySQL之基准测试篇
高性能MySQL之架构篇
Copyright © 2011-2022 走看看