1. 程式人生 > >演算法資料結構

演算法資料結構

經典的氣泡排序 C#實現

將一組資料當前位置和後一位比較,如果當前大於後一位 ,則兩個數交換位置,直到排序完成

 

namespace BubbleSort
{
    class MainClass
    {
        // 陣列氣泡排序,原理:大的元素總是向後慢慢移動直到遇到比它更大的元素,每一輪     交換,輸出最大值
        public static void Main(string[] args)
        {

            //一組陣列升序

      
            int temp = 0;//定義資料交換的中間臨時變數
            int[] list = new int[10] { 40, 20, 30, 10, 9 ,1,2,5,6,4} ;
            for (int i = 0; i < list.Length - 1; i++)
            {
              
                for (int j = i + 1; j < list.Length; j++)
                {
                    if (list[i] > list[j])//如果第二個數小於第一個數

                    {
                        //互動兩個數的位置
                        temp = list[i];//把大的數放在一個臨時儲存位置
                        list[i] = list[j];//把小的數賦給前一個,保證每趟排序前面最小
                        list[j] = temp;//然後把臨時位置的哪個大數賦給後一個

                    }

                }

            }

 

            //或者


            for(int i = 0;i<list.Length-1;i++)
            {
                for (int j = 0; j < list.Length - 1;j++)
                {
                    if(list[j]>list[j+1])
                    {
                        temp = list[j];
                        list[j] = list[j + 1];
                        list[j + 1] = temp;
                    }
                }
            }

 

 

 // 降序


            for (int i = 0; i < list.Length-1;i++)
            {
                for (int j = 0; j < list.Length-1;j++)
                {
                    if(list[j]<list[j+1])
                    {
                        temp = list[j];
                        list[j] = list[j + 1];
                        list[j + 1] = temp;
                    }
                }
            }
 


            Console.WriteLine("排序後的陣列!");
            foreach(int item in list)
            {
                Console.Write(item +",");
            }
            Console.WriteLine();
            Console.ReadLine();
        }
    }
}