C#排序算法

2025-04-19 10:05:35
推荐回答(2个)
回答1:

面试时最基本的排序算法

回答2:

1、冒泡法
private int[] ArraySort(int[] array)
{
int temp;
bool noSwap = true;
for (int i = 0; i < array.Length; i++)
{
for (int j = i + 1; j < array.Length; j++)
{
if (array[i] > array[j])
{
temp = array[i];
array[i] = array[j];
array[j] = temp;
noSwap = false;
}
}
if (noSwap) return array;//没有再发生交换,排序结束
else noSwap = true;
}
return array;
}2、shell 排序 private static void Shell_Sort(int[] b) {
int[] a = new int[b.Length];
b.CopyTo(a, 0);
int key;
Console.WriteLine("Shell排序");
int gap=5,k;
for(;gap>0;gap/=2)
for (int j = gap; j < 10; j++)
{
if (a[j] < a[j - gap])
{
key = a[j];
for (k = j - gap; k >= 0 ; k -= gap)
{
if (key < a[k])
{
a[k + gap] = a[k];
}
else
break;
}
a[k + gap] = key;

}
}

Print(a);
}