2015年2月10日 星期二

C# Sorting Algorithm - Bubble Sort 泡泡演算法

我們經常使用排序算法來排序數字和字符串。另外,我們有很多的排序算法。在這裡用一些簡單的範例解釋如何用泡泡排序算法的產生來了解此演算法是如何運作的。

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {

      static int BubbleSort()
        {
            Console.Write("\n程序數值使用冒泡排序升序");
            Console.Write("\n\n輸入元素的總數: ");
            int max = Convert.ToInt32(Console.ReadLine());

            int [] numarray = new int[max];

            for(int i = 0; i < max; i++)
            {
                Console.Write("\n輸入 [" + (i + 1).ToString() + "] 元素: ");
                numarray[i] = Convert.ToInt32(Console.ReadLine());
            }

            Console.Write("排序之前   : ");
            for(int k = 0; k < max; k++)
                Console.Write(numarray[k] + " ");
            Console.Write("\n");

            for(int i = 1; i < max; i++)
            {
                for(int j = 0; j < max - i; j++)
                {
                    if(numarray[j] > numarray[j + 1])
                    {
                        int temp = numarray[j];
                        numarray[j] = numarray[j + 1];
                        numarray[j + 1] = temp;
                    }
                }
                Console.Write("迴圈之後 " + i.ToString() + ": ");
                for(int k = 0; k < max; k++)
                    Console.Write(numarray[k] +  " ");
                Console.Write("/*** " + (i + 1).ToString() + " 最大的數值被放人Array的最後 ***/\n");
            }

            Console.Write("\n\n在上升的順序號碼如下:\n\n");
            for(int i = 0; i < max; i++)
            {
                Console.Write("Sorted [" + (i + 1).ToString() + "] 元素: ");
                Console.Write(numarray[i]);
                Console.Write("\n");
            }
            return 0;
        } 

      static void Main(string[] args)
      {
            BubbleSort();
          
      }
    }

}

可以用上面的程式去跑看看來看結果。

-雲遊山水為知已逍遙一生而忘齡- 電腦神手

沒有留言:

張貼留言