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