Gear.Turbo

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, 
09);
        
for (int i=0; i<10; i++)
            Console.Write(
"{0}\t",data[i]);
        Console.Read();
    }

}

posted on 2007-01-10 22:45  lsp  阅读(382)  评论(1)    收藏  举报

导航