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


浙公网安备 33010602011771号