C# 常用排序算法

 

 1 static void Main()
 2         {
 3             Random rnd = new Random();
 4             int[] list = new int[10];
 5             for (int i = 0; i < list.Length; i++)
 6             {
 7                 list[i] = rnd.Next(1,200);
 8                 Console.Write(list[i] + ",");
 9             }
10             Console.WriteLine("------");
11             list = InsertSort(list);
12             for (int i = 0; i < list.Length; i++)
13             {
14                 Console.Write(list[i] + ",");
15             }
16             Console.ReadLine();
17         }
18         /// <summary>
19         /// 冒泡排序法
20         /// </summary>
21         /// <param name="list"></param>
22         /// <returns></returns>
23         static int[] BubbleSort(int[] list)
24         {
25             bool done = false;
26             int i = 1,tmp;
27             while (i < list.Length && !done)
28             {
29                 done = true;
30                 for (int j = 0; j < list.Length - i; j++)
31                 {
32                     if (list[j] > list[j + 1])
33                     {
34                         tmp=list[j];
35                         list[j] = list[j+1];
36                         list[j+1] = tmp;
37                         done = false;
38                     }
39                 }
40                 i++;
41             }
42             return list;
43         }
44         /// <summary>
45         /// 选择排序法
46         /// </summary>
47         /// <param name="list"></param>
48         /// <returns></returns>
49         static int[] SelectSort(int[] list)
50         {
51             int minIndex,tmp;
52             for (int i = 0; i < list.Length-1; i++)
53             {
54                 minIndex = i;
55                 for (int j = i+1; j < list.Length; j++)
56                 {
57                     if (list[minIndex] > list[j])
58                     {
59                         minIndex = j;
60                     }
61                 }
62                 if (minIndex != i)
63                 {
64                     tmp = list[i];
65                     list[i] = list[minIndex];
66                     list[minIndex] = tmp;
67                 }
68             }
69             return list;
70         }
71         /// <summary>
72         /// 插入排序法
73         /// </summary>
74         /// <param name="list"></param>
75         /// <returns></returns>
76         static int[] InsertSort(int[] list)
77         {
78             for (int i = 1; i < list.Length; i++)
79             {
80                 int temp = list[i];
81                 int j = i - 1;
82                 while (j >= 0 && list[j] > temp)
83                 {
84                     list[j+1] = list[j];
85                     j--;
86                 }
87                 list[j + 1] = temp;
88             }
89             return list;
90         }

 

posted @ 2012-08-29 21:40  Macbeth  阅读(196)  评论(0编辑  收藏  举报