冒泡排序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace csharpsTest
{
    class Program
    {
        static void Main(string[] args)
        {

            int[] arr = { 5, 2, 3, 6 };

            Program mProgram = new Program();

            mProgram.BubbleSort(arr);

            for (int i = 0; i < arr.Length; ++i)
            {
                System.Console.Write(" " + arr[i]);
            }
        }

        void BubbleSort(int[] arr)
        {
            int length = arr.Length;

            int testTimes = 0;

            for (int i = length - 1; i > 0; --i)
            {
                bool isAlready = true;
                for (int j = 1; j <= i; ++j)
                {
                    if (arr[j - 1] > arr[j])
                    {
                        Swap(ref arr[j - 1], ref arr[j]);
                        isAlready = false;
                    }
                }
                testTimes++;
                if (isAlready)
                {
                    break;
                }
            }
            System.Console.WriteLine("testTims:" + testTimes);
        }

        void Swap(ref int a, ref int b)
        {
            int temp = a;
            a = b;
            b = temp;
        }
    }
}

冒泡交换排序;

不停的对比、交换相邻的两个数据,并吐出最大的那个,直到吐光。

添加bool值检测是否已经有序,并break。

改变自己
原文地址:https://www.cnblogs.com/sun-shadow/p/5353672.html