詳解C#排序函數(shù)實現(xiàn)冒泡排序
本文將介紹C#排序函數(shù),這些代碼函數(shù)的主要目的是實現(xiàn)冒泡排序。希望通過這個C#排序函數(shù),能幫助大家更好的完成功能。
春節(jié)前后由于忙著公司里的項目,所以復(fù)習(xí)數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)計劃被打亂了,前兩天新的項目上線了,周末可以偷空繼續(xù)看了,這個系列我希望一直可以堅持下去。之前很多朋友問我要電子版的書,我有給部分朋友發(fā)到郵箱去,但是由于忙,有的朋友我就沒有發(fā),請大家見諒。我本來打算直接在博客園上提供下載,但是每次上載的時候都會提示有腳本錯誤,不知道是為什么,這個還要麻煩DUDU看一下是什么問題。我現(xiàn)在已經(jīng)將文件放到了一個文件共享的服務(wù)器上了,大家可以按照以下這個地址下載。
http://oyjd614.uubox.net/self.u/%E7%94%B5%E5%AD%90%E4%B9%A6/Data.Structures.and.Algorithms.pdf/
由于這本書我發(fā)現(xiàn)的錯誤較多,感覺質(zhì)量不是很好,所以大家在看的時候一定要注意。好了,我們繼續(xù)這個系列,今天主要是將排序算法中最簡單的冒泡排序。所謂冒泡排序就是在每一次排序的過程中總有一個***的值被移動到后面,值小的就像水泡一樣浮到水面。下面我們就看一下代碼,重要的地方都有注釋,大家可以看注釋。
- class SortingAlgorithms
- {
- private int[] arr;
- private int upper;
- private int numElement;
- //初始化數(shù)組
- public SortingAlgorithms(int size)
- {
- arr = new int[size];
- upper = size - 1;
- numElement = 0;
- }
- //給數(shù)組插入元素
- public void Insert(int item)
- {
- arr[numElement] = item;
- numElement++;
- }
- //打印數(shù)組元素
- public void DisplayElement()
- {
- for (int i = 0; i <= upper; i++)
- {
- Console.WriteLine(arr[i] + " ");
- }
- Console.ReadLine();
- }
- //冒泡排序
- public void BubbleSort()
- {
- int Temp;
- //外循環(huán)是限制一次冒泡排序比較的元素個數(shù)
- for (int Outer = upper; Outer >= 1; Outer--)
- {
- //一次冒泡排序比較0~ourter-1個元素的大小
- for (int Inner = 0; Inner <= Outer-1; Inner++)
- {
- //排序過程
- if (arr[Inner] > arr[Inner + 1])
- {
- Temp = arr[Inner];
- arr[Inner] = arr[Inner + 1];
- arr[Inner + 1] = Temp;
- }
- }
- }
- //this.DisplayElement();
- }
- }
- 一下是調(diào)用算法的過程:
- static void Main(string[] args)
- {
- SortingAlgorithms MyArray = new SortingAlgorithms(10);
- Random rnd = new Random(100);
- for (int i = 0; i < 10; i++)
- {
- MyArray.Insert((int)(rnd.NextDouble()*100));
- }
- Console.WriteLine("Before Sorting:");
- MyArray.DisplayElement();
- //進行排序
- MyArray.BubbleSort();
- Console.WriteLine("After sorting");
- //打印排序后的元素
- MyArray.DisplayElement();
- }
C#排序函數(shù)實現(xiàn)冒泡排序就介紹到這里。
【編輯推薦】