排序算法——冒泡排序(冒泡排序 算法)

// 冒泡排序的方法
static void BubbleSort(int[] arr)
{
    // 获取数组的长度
    int len = arr.Length;
    // 外层循环控制排序的趟数,每趟都会找出一个最大或最小的元素
    for (int i = 0; i < len - 1; i++)
    {
        // 内层循环控制比较的次数,每次都会比较相邻的两个元素
        for (int j = 0; j < len - 1 - i; j++)
        {
            // 如果左边的元素大于右边的元素,就交换它们的位置
           // 如果是升序,那么这里是大于号,降序,修改为小于号
            if (arr[j] > arr[j + 1])
            {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
        PrintArray(arr);
    }
}

static void PrintArray(int[] arr)
{
    foreach (int num in arr)
    {
        Console.Write(num + " ");
    }
    Console.WriteLine();
}


// 测试数组
int[] arr = { 72, 54, 59, 30, 31, 78, 2, 77, 82, 72 };
// 调用冒泡排序方法,按照升序排序
BubbleSort(arr);

每一趟的排序结果

72 59 54 31 78 30 77 82 72 2

72 59 54 78 31 77 82 72 30 2

72 59 78 54 77 82 72 31 30 2

72 78 59 77 82 72 54 31 30 2

78 72 77 82 72 59 54 31 30 2

78 77 82 72 72 59 54 31 30 2

78 82 77 72 72 59 54 31 30 2

82 78 77 72 72 59 54 31 30 2

82 78 77 72 72 59 54 31 30 2

缺点:极端情况下,顺序如果都是逆序的情况,数据交换位置比较多,时间复杂度O(n^2)

相关文章

C语言排序方法——冒泡排序详解!你学会了吗?

冒泡排序法的基本思路为:每次将相邻的两个数比较,将小的调在前面。举个例子,如果有6个数:9,8,5,4,2,0。第一次先将最前面的两个数9和8对调。第二次将第2个数和第3个数对调(9和5)······...

冒泡排序(冒泡排序python)

冒泡排序(Bubble Sort)是一种简单的排序算法,其基本思想是对待排序的元素从前向后依次比较相邻的两个元素,如果顺序不对则交换它们的位置,轮比较下来,最大的元素就会“冒泡”到数组的末尾重复这个过...

冒泡排序——C语言(冒泡排序c语言什么意思)

冒泡排序的图示:假设有一个数组 [5, 3, 8, 6, 2],逐步冒泡排序的过程:第一轮:比较 5 和 3,5 > 3,交换 → [3, 5, 8, 6, 2]比较 5 和 8,5 <...

基于C语言的冒泡排序法(c语言冒泡排序思路)

冒泡排序法:对数组中的n个整数类型的数据元素(a[0]~a[n-1])进行排序。void BubbleSort(int a[],int n){ int i,j,flag=1; int temp; fo...

一文透彻解析冒泡排序(冒泡排序有几种方法)

谈一谈冒泡排序看到很多人谈算法题,上来就是一段代码,你去看去吧,自己悟去吧。心塞有的题目老长时间就是不理解。。。本文分析一下啥是冒泡排序?排序就是一组数字,按照顺序排列(从小到大) ,冒泡排序是排序的...

常见的三种排序(冒泡排序、插入排序、选择排序)

冒泡排序什么是冒泡排序?百度百科解释:它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要...