C#Stooge排序
传说中的Stooge排序,不知效率如何,也没弄明白排序原理,等有时间了研究一下,也请大虾指教:
using System;

class Stooge
{
public void sort(int[] data, int i ,int j)
{
if (data[i]>data[j])
{
int t = data[i];
data[i] = data[j];
data[j] = t;
}
if (i+1 >= j) return;
int k = (j-i+1)/3;
sort(data, i, j-k);
sort(data, i+k, j);
sort(data, i, j-k);
}
}
class Program
{
public static void Main()
{
Random rnd = new Random();
int[] data = new int[10];
for (int i=0; i<10; i++)
{
data[i] = rnd.Next(100);
Console.Write("{0}\t",data[i]);
}
Console.WriteLine();
Stooge s = new Stooge();
s.sort(data, 0, 9);
for (int i=0; i<10; i++)
Console.Write("{0}\t",data[i]);
Console.Read();
}
}
using System;
class Stooge
{
public void sort(int[] data, int i ,int j)
{
if (data[i]>data[j])
{
int t = data[i];
data[i] = data[j];
data[j] = t;
}
if (i+1 >= j) return;
int k = (j-i+1)/3;
sort(data, i, j-k);
sort(data, i+k, j);
sort(data, i, j-k);
}
}
class Program
{
public static void Main()
{
Random rnd = new Random();
int[] data = new int[10];
for (int i=0; i<10; i++)
{
data[i] = rnd.Next(100);
Console.Write("{0}\t",data[i]);
}
Console.WriteLine();
Stooge s = new Stooge();
s.sort(data, 0, 9);
for (int i=0; i<10; i++)
Console.Write("{0}\t",data[i]);
Console.Read();
}
}


浙公网安备 33010602011771号