Gear.Turbo

C#递归插入排序

用递归的插入排序方式,时间复杂度和普通的插入排序一样,没什么本质的改进,无非循环变递归而已:  )
using System;
class Insertion2
{
    
public void sort(int[] A, int p, int q)
    
{
        
if (p<q)
        
{
            sort(A, p, q
-1);
            
int i = q-1;
            
int key = A[q];
            
while (i>=0 && A[i]>key) A[i+1= A[i--];
            A[i
+1= key;
        }

    }

}

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

}

posted on 2007-01-11 16:34  lsp  阅读(487)  评论(0)    收藏  举报

导航