国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#實現冒泡排序

2019-11-17 02:47:51
字體:
來源:轉載
供稿:網友
C#實現冒泡排序

一、算法原理

1、比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。

2、對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最后一對。在這一點,最后的元素應該會是最大的數。

3、針對所有的元素重復以上的步驟,除了最后一個。

4、持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。

二、算法分析

平均時間復雜度:冒泡排序最好為O(n),最壞為O(n²),平均時間復雜度為O(n²)

空間復雜度:O(1) (用于交換)

三、算法穩定性

冒泡排序就是把小的元素往前調或者把大的元素往后調。比較是相鄰的兩個元素比較,交換也發生在這兩個元素之間。所以,如果兩個元素相等,我想你是不會再無聊地把他們倆交換一下的;如果兩個相等的元素沒有相鄰,那么即使通過前面的兩兩交換把兩個相鄰起來,這時候也不會交換,所以相同元素的前后順序并沒有改變,所以冒泡排序是一種穩定排序算法。

四、冒泡排序有兩個很明顯的優勢

1.“編程復雜度”很低,很容易寫出代碼;

2.具有穩定性,這里的穩定性是指原序列中相同元素的相對順序仍然保持到排序后的序列,而堆排序、快速排序均不具有穩定性。

五、C#冒泡排序算法

C# 代碼 復制
//冒泡排序
void BubbleSort(int array[],int n)
{        int i=0;     int j=0;     int temp=0;    int flag = 0;    for(i=0;i<n - 1 ;i++)   /*外循環控制排序的總趟數*/    {        flag = 0;   /*本趟排序開始前,交換標志應為假*/       for(j=n-1;j > i;j--) /*內循環控制一趟排序的進行*/        {           if(array[j] < array[j-1] ) /*相鄰元素進行比較,若逆序就交換*/           {             temp =array[j];             array[j] = array[j-1];             array[j-1] = temp;             flag = 1;                  /*發生了交換,故將交換標志置為真*/           }                  }        if (flag == 0)  /*本趟排序未發生交換,提前終止算法*/           break;        /*                PrintArray(array,n);        */                 }}

算法的應用

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 谢通门县| 长岛县| 临潭县| 密云县| 油尖旺区| 恩平市| 乌兰浩特市| 英德市| 兴安县| 湟中县| 习水县| 晴隆县| 成都市| 浏阳市| 肥东县| 故城县| 石河子市| 永州市| 大同县| 抚顺县| 峨边| 江山市| 天水市| 九江县| 金昌市| 正安县| 玉林市| 尼勒克县| 平顶山市| 咸阳市| 香格里拉县| 文登市| 杨浦区| 盐山县| 塔城市| 双鸭山市| 镇雄县| 无锡市| 北票市| 兰溪市| 黄梅县|