最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c# 冒泡排序算法(Bubble Sort) 附實(shí)例代碼

 更新時(shí)間:2013年10月23日 21:08:29   作者:  
這篇文章主要介紹了c# 冒泡排序算法,需要的朋友可以參考下

冒泡排序(Bubble Sort)

冒泡排序算法的運(yùn)作如下:

1.比較相鄰的元素。如果第一個(gè)比第二個(gè)大,就交換他們兩個(gè)。
2.對(duì)每一對(duì)相鄰元素作同樣的工作,從開(kāi)始第一對(duì)到結(jié)尾的最后一對(duì)。在這一點(diǎn),最后的元素應(yīng)該會(huì)是最大的數(shù)。
3.針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè)。
4.持續(xù)每次對(duì)越來(lái)越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對(duì)數(shù)字需要比較。

平均時(shí)間復(fù)雜度 O(n^2)

冒泡排序

復(fù)制代碼 代碼如下:

/// <summary>
/// 冒泡排序
/// </summary>
/// <param name="arr"></param>
/// <param name="count"></param>
public static void BubbleSort(int[] arr, int count)
{
    int i = count, j;
    int temp;
    while (i > 0)
    {
        for (j = 0; j < i - 1; j++)
        {
            if (arr[j] > arr[j + 1])
            {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
        i--;
    }
}

 

 
   //使用例子
   int[] y = new int[] { 1, 32, 7, 2, 4, 6, 10, 8, 11, 12, 3, 9, 13, 5 };
    BubbleSort(y,  y.Length );
    foreach (var item in y)
    {
        Console.Write(item+" ");  
    }
    //1 2 3 4 5 6 7 8 9 10 11 12 13 32

簡(jiǎn)單且實(shí)用的冒泡排序算法的控制臺(tái)應(yīng)用程序。運(yùn)行界面如下:


復(fù)制代碼 代碼如下:

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

namespace 冒泡排序
{
    class Program
    {
        /// <summary>
        /// 交換兩個(gè)整型變量的值
        /// </summary>
        /// <param name="a">要交換的第一個(gè)整形變量</param>
        /// <param name="b">要交換的第一個(gè)整形變量</param>
        private static void Reverse(ref int a, ref int b)
        {
            int temp = a;
            a = b;
            b = temp;
        }

        static void Main(string[] args)
        {
            while (true)
            {
                string[] strInput;//用來(lái)接收用戶(hù)輸入的字符串
                int[] intInput;
                string[] separator = { ",", " " };//設(shè)置分隔符
                Console.WriteLine("請(qǐng)輸入數(shù)據(jù),以\",\"或空格分隔,或按\"q\"退出。");
                string str = Console.ReadLine();//接收鍵盤(pán)輸入
                if (str == "q")
                {
                    return;
                }
                strInput = str.Split(separator, StringSplitOptions.RemoveEmptyEntries);//將用戶(hù)輸入的字符串分割為字符串?dāng)?shù)組
                intInput = new Int32[strInput.Length];

                //將字符串?dāng)?shù)組的每一個(gè)元素轉(zhuǎn)換為整型變量
                //轉(zhuǎn)換時(shí)如果出現(xiàn)格式錯(cuò)誤或溢出錯(cuò)誤則提示
                try
                {
                    for (int i = 0; i < strInput.Length; i++)
                    {
                        intInput[i] = Convert.ToInt32(strInput[i]);
                    }
                }
                catch (FormatException err)
                {
                    Console.WriteLine(err.Message);
                }
                catch(OverflowException err)
                {
                    Console.WriteLine(err.Message);
                }

                //排序算法主體
                for (int i = 0; i < intInput.Length - 1; i++)//這里的Length要減1否則會(huì)超界
                {
                    for (int j = 0; j < intInput.Length - i - 1; j++)//這里的Length要減i以減少重復(fù)運(yùn)算
                    {
                        //如果元素j比它之后的一個(gè)元素大,則交換他們的位置
                        //如此循環(huán)直到遍歷完整個(gè)數(shù)組
                        if (intInput[j] > intInput[j + 1])
                        {
                            Reverse(ref intInput[j], ref intInput[j + 1]);
                        }
                    }
                }

                string strOutput = "";//用于輸出的字符串
                foreach (int temp in intInput)
                {
                    strOutput += Convert.ToString(temp) + ",";
                }
                Console.WriteLine("排序后的數(shù)據(jù)為:\r\n{0}\r\n", strOutput);
            }
        }
    }
}

 

相關(guān)文章

最新評(píng)論

威远县| 满洲里市| 垦利县| 彰武县| 新建县| 阿拉善左旗| 伊金霍洛旗| 威海市| 汶川县| 兖州市| 广安市| 巫山县| 池州市| 乌兰浩特市| 鄂温| 萝北县| 宁武县| 石棉县| 九江县| 女性| 南郑县| 韩城市| 阳东县| 无锡市| 华蓥市| 虹口区| 四会市| 淄博市| 翼城县| 长汀县| 邛崃市| 阿拉尔市| 英吉沙县| 无为县| 什邡市| 高陵县| 乌拉特前旗| 凤凰县| 同仁县| 武宁县| 临朐县|