C#排序算法
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);
}
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);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询