閱讀157 返回首頁    go 阿裏雲 go 技術社區[雲棲]


C# 冒泡排序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Sort
{
    class BubbleSorter
    {
        public static int[] Sort(int[] a)
        {
            BubbleSort(a);
            return a;
        }
        private static void BubbleSort(int[] myArray)
        {
            for (int i = 0; i < myArray.Length; i++)//循環的趟數
            {
                for (int j = 0; j < myArray.Length - 1- i; j++)//每次循環的次數
                {
		//比較相鄰元素,將值大的後移==》每一趟循環結束==》最後一個數是最大的。
		//所以每次循環都比上一次循環的個數少1,即j < myArray.Length - 1- i
                    if (myArray[j] > myArray[j + 1])
                    {
                        Swap(ref myArray[j], ref myArray[j + 1]);
                    }
                }
            }
        }
	//引用參數與值參數
        private static void Swap(ref int left, ref int right)
        {
            int temp;
            temp = left;
            left = right;
            right = temp;
        }
    }
}
冒泡排序算法的運作如下:
  1. 1、比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
  2. 2、對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。==》最後一個數就不需要比較了,因為它就是最大的。
  3. 3、針對所有的元素重複以上的步驟,除了最後一個。
  4. 4、持續每次對越來越少的元素重複上麵的步驟,直到沒有任何一對數字需要比較。
作者:jiankunking 出處:https://blog.csdn.net/jiankunking

最後更新:2017-04-03 12:54:13

  上一篇:go Sql Server 2008 R2 激活密鑰
  下一篇:go C# 占位符