C#冒泡排序及其分析 - .net,C#,mvc知识积累 - CSS模版园-免费网站模版下载
当前位置 CSS模版园 >> 网站制作 >> .net >> C#冒泡排序及其分析

原创C#冒泡排序及其分析

C#冒泡排序及其分析

目的:按从小到大排序。

以此比较相邻的两个元素,每次比较完毕最大的一个字跑到本轮的末尾。

//冒泡排序
int[] arr = { 3, 2, 5, 8, 4, 1 };
int temp = 0;
for (int i = 0; i < arr.Length - 1; i++)
{
    //从比i大1的值开始遍历到结束
    //这里比较的总是比i大的值,因为之前的值已经冒泡完成
    for (int j = i + 1; j < arr.Length; j++)
    {
        //如果前一个值大于后一个值,他们交换位置
        if (arr[i] > arr[j]) //i>j顺序,i<j倒序
        {
            //交换位置
            temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }
}

分析

假设存在数组:3, 2, 5, 8, 4, 1

比较相邻两个元素,如果左边元素大于右边元素,则交换。从代码来看,第一个for循环需要循环5次,所以需要进行5轮比较

第一轮:arr[0]和arr[1]、arr[2]、arr[3]、arr[4]、arr[5]比较

第二轮:arr[1]和arr[2]、arr[3]、arr[4]、arr[5]比较

第三轮:arr[2]和arr[3]、arr[4]、arr[5]比较

第四轮:arr[3]和arr[4]、arr[5]比较

第五轮:arr[4]和arr[5]比较

第一次轮询:此时数组={3, 2, 5, 8, 4, 1}

1、比较arr[0]、arr[1]:arr[0]=3 , arr[1]=2,arr[0] > arr[1] ,交换位置,此时数组={2, 3, 5, 8, 4, 1}

2、比较arr[0]、arr[2]:arr[0]=2,arr[2]=5,arr[0] < arr[2] ,不操作

3、比较arr[0]、arr[3]:arr[0]=2,arr[3]=8,arr[0] < arr[3] ,不操作

4、比较arr[0]、arr[4]:arr[0]=2,arr[4]=4,arr[0] < arr[4] ,不操作

5、比较arr[0]、arr[5]:arr[0]=2 , arr[5]=1,arr[0] > arr[5] ,交换位置,此时数组={1, 3, 5, 8, 4, 2}

第二次轮询:此时数组={1, 3, 5, 8, 4, 2}

1、比较arr[1]、arr[2]:arr[1]=3,arr[2]=5,arr[1] < arr[2] ,不操作

2、比较arr[1]、arr[3]:arr[1]=3,arr[3]=8,arr[1] < arr[3] ,不操作

3、比较arr[1]、arr[4]:arr[1]=3,arr[4]=4,arr[1] < arr[4] ,不操作

4、比较arr[1]、arr[5]:arr[1]=3 , arr[5]=2,arr[1] > arr[5] ,交换位置,此时数组={1, 2, 5, 8, 4, 3}

第三次轮询:此时数组={1, 2, 5, 8, 4, 3}

1、比较arr[2]、arr[3]:arr[2]=5,arr[3]=8,arr[2] < arr[3] ,不操作

2、比较arr[2]、arr[4]:arr[2]=5,arr[4]=4,arr[2] > arr[4] ,交换位置,此时数组={1, 2, 4, 8, 5, 3}

3、比较arr[2]、arr[5]:arr[2]=4 , arr[5]=3,arr[2] > arr[5] ,交换位置,此时数组={1, 2, 3, 8, 5, 4}

第四次轮询:此时数组={1, 2, 3, 8, 5, 4}

1、比较arr[3]、arr[4]:arr[3]=8,arr[4]=4,arr[3] > arr[4] ,交换位置,此时数组={1, 2, 3, 5, 8, 4}

2、比较arr[3]、arr[5]:arr[3]=5 , arr[5]=4,arr[3] > arr[5] ,交换位置,此时数组={1, 2, 3, 4, 8, 5}

第五次轮询:此时数组={1, 2, 3, 4, 8, 5}

1、比较arr[4]、arr[5]:arr[4]=8 , arr[5]=5,arr[4] > arr[5] ,交换位置,此时数组={1, 2, 3, 4, 5, 8}

比较完毕,数组结果为{1, 2, 3, 4, 5, 8}

原创文章内容原创,转载请注明出处:cssteach.com

声明本站所有资源仅供学习与参考,请勿用于商业用途。转载请注明来自:cssteach.com

原文http://cssteach.com/html/show-15-145.html

若文章内容有错误或无法下载,请在回复中说明(可无需登录,直接评论)

最新文章

图文

热门网站模版