Cshap 烙饼排序算法
时间: 2023-09-12 21:05:55 浏览: 100
烙饼排序(Pancake Sorting)是一种简单的排序算法,其基本思路是通过翻转烙饼来将其排序。以下是C#实现的烙饼排序算法:
```
using System;
public class PancakeSorting
{
public static void Sort(int[] arr)
{
for (int i = arr.Length - 1; i > 0; i--)
{
int maxIndex = FindMaxIndex(arr, i);
if (maxIndex != i)
{
Flip(arr, maxIndex);
Flip(arr, i);
}
}
}
private static int FindMaxIndex(int[] arr, int end)
{
int maxIndex = 0;
for (int i = 1; i <= end; i++)
{
if (arr[i] > arr[maxIndex])
{
maxIndex = i;
}
}
return maxIndex;
}
private static void Flip(int[] arr, int end)
{
int start = 0;
while (start < end)
{
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
}
```
在这个实现中,我们首先找到未排序部分中的最大元素,然后将其翻转到数组的顶部。然后,我们将整个未排序部分翻转,将最大元素翻转到数组的底部。通过这种方式,我们逐步将数组排序。
以下是一个使用示例:
```
int[] arr = { 3, 1, 6, 2, 8, 4 };
PancakeSorting.Sort(arr);
Console.WriteLine(string.Join(", ", arr)); // 输出:1, 2, 3, 4, 6, 8
```
阅读全文