14,冒泡排序

1,每轮把最大值排到最后,共排N-1轮

2,每轮排序数依次递减

3,优化,本轮如果没有发生值交换,退出排序

using System;

namespace 数据结构
{
    public class Bubbling
    {
        static int[] sortArray = { 2, 501, 403, 708, 900, 1 };
        public static void Main(string[] args)
        {
            Console.WriteLine("排序之前");
            foreach (var m in sortArray)
            {
                Console.Write(m + " ");
            }
            Bubble(sortArray);
            Console.WriteLine();
            Console.WriteLine("排序之后");
            foreach (var m in sortArray)
            {
                Console.Write(m + " ");
            }
        }

        //冒泡
        public static void Bubble(int[] array)
        {
            //临时变量
            int temp;
            bool flag=false;
            for (int i = 0; i < sortArray.Length - 1; i++)
            {
                for (int j = 0; j < sortArray.Length - 1 - i; j++)
                {
                    if (sortArray[j] > sortArray[j + 1])
                    {
                        flag = true;
                        //交换值
                        temp = sortArray[j];
                        sortArray[j] = sortArray[j + 1];
                        sortArray[j + 1] = temp;
                    }
                }
                //优化排序,本轮如果没发生位置交换,退出
                if (flag == false)
                {
                    break;
                }
                else
                {
                    flag= false;
                }
            }
        }
    }
}

 

posted @ 2020-07-22 13:14  小橘·Huang  阅读(132)  评论(0编辑  收藏  举报