如何使用 C# 在没有额外空间的情况下对数组(荷兰国旗)中的 0,1,2 进行排序?

2023年 8月 28日 47.5k 0

如何使用 C# 在没有额外空间的情况下对数组(荷兰国旗)中的 0,1,2 进行排序?

我们需要三分球,低位、中位、高位。我们将在开头使用 low 和 mid 指针,而 high 指针将指向给定数组的末尾。

如果 array [mid] =0,则将 array [mid] 与 array [low] 交换] 并将两个指针递增一次。

如果 array [mid] = 1,则不需要交换。将中指针递增一次。

如果数组 [mid] = 2,则将数组 [mid] 与数组 [high] 交换,并将高指针递减一次。

时间复杂度 - O(N)

示例

 实时演示

using System;
namespace ConsoleApplication{
public class Arrays{
private void Swap(int[] arr, int pos1, int pos2){
int temp = arr[pos1];
arr[pos1] = arr[pos2];
arr[pos2] = temp;
}
public void DutchNationalFlag(int[] arr){
int low = 0;
int mid = 0;
int high = arr.Length - 1;
while (mid

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论