俄罗斯贵宾会-俄罗斯贵宾会官网
做最好的网站

C# 冒泡排序

备注:上述讲解来自 维基百科 冒泡排序

算法实现:

图片 1

java实现

图片 2

python实现


冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。

图片 3

动态演示

int[] sort = new int[13] { 1, 4, 89, 34, 56, 40, 59, 60, 39, 1, 40, 90, 48 };  // 输入一个数组
 for (int i = 0; i < sort.Length; i++)  // 循环每个元素。
            {
                for (int j = i+1; j < sort.Length; j++) // 每个元素都与它之后的元素进行一对一比较。
                {
                    if (sort[i] < sort[j])  // 当有值比sort[i]大时,就交换数值。
                    { 
                    int temp = sort[i];
                    sort[i] = sort[j];
                    sort[j] = temp;    // sort[i] 获取的是始终为最大值。
                    }
                }
            }
 for (int i = 0; i < sort.Length; i++)  // 输出
            {
                Console.Write(sort[i] + " ");
            }

冒泡排序过程

代码如下(从大到小排序):

图片 4

 

算法原理(从后往前):

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

  1. 针对所有的元素重复以上的步骤,除了最后一个。

4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

本文由俄罗斯贵宾会发布于编程,转载请注明出处:C# 冒泡排序

您可能还会对下面的文章感兴趣: