C# 插入排序(数据结构与算法)

1 using System;
 2
 using System.Collections.Generic;
 3
 using System.Text;
 4
 
 5 namespace BubbleSort
 6
 {
 7
     class Program
 8
     {
 9
         static void Main(string[] args)
10
         {
11
             TestArray nums = new TestArray(10);
12
             #region  初始化数组
13             Random rnd = new Random(100);
14
             for (int num = 0; num < 10; num++)
15
             {
16
                 nums.Insert(rnd.Next(0,100));
17
             }
18
             #endregion
19             Console.WriteLine("Before Sorting: ");
20
             nums.DisplayElements();
21
             Console.WriteLine("Durring Sorting: ");
22
             nums.InsertionSort();
23
             Console.WriteLine("After Sorting: ");
24
             nums.DisplayElements();
25
             Console.ReadLine();
26
         }
27
     }
28
 }
29
 public class TestArray
30
 {
31
     private int[] arr;
32
     private int upper;
33
     private int numElements;
34
     public TestArray(int size)
35
     {
36
         arr = new int[size];
37
         upper = size - 1;
38
         numElements = 0;
39
     }
40
     public void Insert(int item)
41
     {
42
         arr[numElements] = item;
43
         numElements++;
44
     }
45
     public void DisplayElements()
46
     {
47
         for (int num = 0; num <= upper; num++)
48
         {
49
             Console.Write(arr[num]+" ");
50
         }
51
         Console.WriteLine();
52
     }
53
     public void Clear()
54
     {
55
         for (int num = 0; num <= upper; num++)
56
         {
57
             arr[num] = 0;
58
         }
59
         numElements = 0;
60
     }
61
     //插入排序算法
62     public void InsertionSort()
63
     {
64
         int inner, temp;
65
         for(int outer=1;outer<=upper;outer++)
66
         {
67
             inner=outer;
68
             temp=arr[outer];
69
             while(inner>0 && arr[inner-1]>=temp)
70
             {
71
                 arr[inner]=arr[inner-1];
72
                 inner-=1;
73
             }
74
             arr[inner]=temp;
75
             this.DisplayElements();
76
         }
77
     }
78
 }

原文地址:https://www.cnblogs.com/wwwzzg168/p/3570104.html