using System; using System.Diagnostics; namespace TestCArray { class Program { static void Main(string[] args) { CArray numbs = new CArray(10); Random rnd = new Random(10); for (int i = 0; i <= 9; i++) { numbs.Insert(rnd.Next(0,10)); } Console.WriteLine("Before sorting:"); numbs.DisplayElements(); Console.WriteLine("During sorting:"); //numbs.BubbleSort(); //numbs.SelectionSort(); numbs.InsertionSort(); Console.WriteLine("After sorting:"); numbs.DisplayElements(); } } public class CArray { private int[] arr; private int upper; private int numElements; public CArray(int size) { arr = new int[size]; upper = size - 1; numElements = 0; } public void Insert(int item) { arr[numElements] = item; numElements++; } public void DisplayElements() { Console.Write("---->"); for (int i = 0; i <= upper; i++) { Console.Write(arr[i] + " "); } Console.WriteLine(); } public void Clear() { for (int i = 0; i <= upper; i++) { arr[i] = 0; } numElements = 0; } // 冒泡排序 public void BubbleSort() { int temp; for (int outer = 0; outer <= upper; outer++) { for (int inner = 0; inner < upper-outer; inner++) { if (arr[inner+1]<arr[inner]) { temp = arr[inner + 1]; arr[inner + 1] = arr[inner]; arr[inner] = temp; } } this.DisplayElements(); } } // 选择排序 public void SelectionSort() { int temp; for (int outer = 0; outer < upper; outer++) { for (int inner = outer+1; inner <= upper; inner++) { if (arr[outer] > arr[inner]) { temp = arr[outer]; arr[outer] = arr[inner]; arr[inner] = temp; } } this.DisplayElements(); } } // 插入排序 public void InsertionSort() { int inner, temp; for (int outer = 1; outer <= upper; outer++) { temp = arr[outer]; inner = outer; while (inner > 0 && arr[inner-1] >= temp) { arr[inner] = arr[inner - 1]; inner -= 1; } arr[inner] = temp; this.DisplayElements(); } } } }