小工具知识网

当前位置: 首页 > 行业知识 > 【算法集训】基础算法:基础排序 - 冒泡排序

行业知识

【算法集训】基础算法:基础排序 - 冒泡排序

2026-10-29 15:54:34 来源:互联网转载

一、基本理解

贴上��解,更容易理解代码:https://visualgo.net/zh/sorting

()

冒泡排序(Bubble Sort)又称为泡式排序,是一种简单的排序算法。

核心思想:

()

它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就像水中的气泡会冒起来一样。

二、题目练习

1046. 最后一块石头的重量

// 冒泡排序void BubbleSort(int * n, int size) {    // 从右往左先从最大的开始确定,所以从最后一个开始    for(int i = size - 1; i > 0; --i) {        for(int j = 0; j  n[j + 1]) {                int tmp = n[j];                n[j] = n[j + 1];                n[j + 1] = tmp;            }        }    }}int lastStoneWeight(int* stones, int stonesSize) {    while(stonesSize > 1) {        BubbleSort(stones, stonesSize);        int x = stones[stonesSize - 1];        int y = stones[stonesSize - 2];        // 题目给的两种粉碎条件        if(x == y) {            stonesSize -= 2;        }else {            int z = x - y;            stones[stonesSize - 2] = z;            stonesSize -= 1;        }    }    // 是否存在石头    return stonesSize == 0 ? 0 : stones[0];}

2148. 元素计数

void BubbleSort(int * n, int size) {    for(int i = size - 1; i > 0; --i) {        for(int j = 0; j  n[j + 1]) {                int tmp = n[j];                n[j] = n[j + 1];                n[j + 1] = tmp;            }        }    }}int countElements(int* nums, int numsSize) {    BubbleSort(nums, numsSize);    int ans = 0;    for(int i = 1; i  

88. 合并两个有序数组

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {    for(int i = 0; i  nums1[j + 1]) {                int t = nums1[j];                nums1[j] = nums1[j + 1];                nums1[j + 1] = t;            }        }    }}

1464. 数组中两元素的最大乘积

int maxProduct(int* nums, int numsSize) {    for(int i = 0; i  nums[j + 1]) {                int temp = nums[j];                nums[j] = nums[j + 1];                nums[j + 1] = temp;            }        }    }    return (nums[numsSize - 1] - 1) * (nums[numsSize - 2] - 1);}

上一篇:简洁明了!教你如何轻松充值Etc!

下一篇:爬虫服务器怎么换?