当前位置: 首页 > wzjs >正文

做打牌的网站怎么办百度推广代运营

做打牌的网站怎么办,百度推广代运营,枣庄建设局网站,码迷seo目录 一、冒泡排序(Bubble Sort) 1. 原理 2. 代码实现 3. 复杂度分析 4. 应用场景 二、归并排序(Merge Sort) 1. 原理 2. 代码实现 3. 复杂度分析 4. 应用场景 三、对比与选择 四、测试示例 例题应用 四、如何选择&a…

目录

一、冒泡排序(Bubble Sort)

1. 原理

2. 代码实现

3. 复杂度分析

4. 应用场景

二、归并排序(Merge Sort)

1. 原理

2. 代码实现

3. 复杂度分析

4. 应用场景

三、对比与选择

四、测试示例

例题应用

四、如何选择?

三、对比总结


一、冒泡排序(Bubble Sort)
1. 原理

冒泡排序通过 重复遍历数组,比较相邻元素,若顺序错误则交换它们。每一轮遍历将未排序部分的最大元素“冒泡”到正确位置。优化后可提前终止排序(若某次遍历无交换,说明已有序)。

2. 代码实现
#include <iostream>
#include <vector>void bubbleSort(std::vector<int>& arr) {int n = arr.size();bool swapped;for (int i = 0; i < n-1; i++) {swapped = false;for (int j = 0; j < n-i-1; j++) {if (arr[j] > arr[j+1]) {std::swap(arr[j], arr[j+1]);swapped = true;}}if (!swapped) break; // 提前终止优化}
}
3. 复杂度分析
  • 时间复杂度

    • 最好情况(已有序):O(n)

    • 平均和最坏情况:O(n²)

  • 空间复杂度:O(1),原地排序。

4. 应用场景
  • 小规模数据排序。

  • 检测数组是否有序(优化后)。

  • 教学用途,理解排序基础逻辑。

--------------------------------------------------------------------------------------------------------------------------

二、归并排序(Merge Sort)
1. 原理

归并排序采用 分治策略

  1. 分割:递归将数组分成两半,直到子数组长度为1。

  2. 合并:将两个有序子数组合并为一个有序数组,需额外空间。

2. 代码实现
#include <iostream>
#include <vector>// 合并两个有序子数组
void merge(std::vector<int>& arr, int left, int mid, int right) {std::vector<int> temp(right - left + 1);int i = left, j = mid + 1, k = 0;while (i <= mid && j <= right) {if (arr[i] <= arr[j]) temp[k++] = arr[i++];else temp[k++] = arr[j++];}while (i <= mid) temp[k++] = arr[i++];while (j <= right) temp[k++] = arr[j++];for (int p = 0; p < k; p++) {arr[left + p] = temp[p];}
}// 递归分割与合并
void mergeSort(std::vector<int>& arr, int left, int right) {if (left >= right) return;int mid = left + (right - left) / 2;mergeSort(arr, left, mid);mergeSort(arr, mid + 1, right);merge(arr, left, mid, right);
}// 包装函数
void mergeSort(std::vector<int>& arr) {mergeSort(arr, 0, arr.size() - 1);
}
3. 复杂度分析
  • 时间复杂度:所有情况均为 O(n log n)。

  • 空间复杂度:O(n),合并时需要临时数组。

4. 应用场景
  • 大规模数据排序,尤其内存充足时。

  • 需要稳定排序的场景(如数据库排序)。

  • 外部排序(处理超出内存的数据)。


三、对比与选择
特性冒泡排序归并排序
时间复杂度O(n²)(平均/最坏)O(n log n)
空间复杂度O(1)O(n)
稳定性稳定稳定
适用数据规模小规模大规模
额外空间需要
实现难度简单中等

选择建议

  • 冒泡排序:数据量小或已接近有序。

  • 归并排序:数据量大且需要稳定性,或内存不受限。


四、测试示例
int main() {std::vector<int> arr1 = {64, 34, 25, 12, 22, 11, 90};bubbleSort(arr1);std::cout << "Bubble Sort Result: ";for (int num : arr1) std::cout << num << " ";std::cout << "\n";std::vector<int> arr2 = {38, 27, 43, 3, 9, 82, 10};mergeSort(arr2);std::cout << "Merge Sort Result: ";for (int num : arr2) std::cout << num << " ";std::cout << "\n";return 0;
}

输出

Bubble Sort Result: 11 12 22 25 34 64 90 
Merge Sort Result: 3 9 10 27 38 43 82 

例题应用
  1. LeetCode 148. 排序链表

    • 题目要求:在 O(n log n) 时间内对链表排序。

    • 解法:归并排序(适合链表的递归分治)。

    cpp

  • ListNode* mergeSort(ListNode* head) {if (!head || !head->next) return head;ListNode* slow = head, *fast = head->next;while (fast && fast->next) {slow = slow->next;fast = fast->next->next;}ListNode* mid = slow->next;slow->next = nullptr;return merge(mergeSort(head), mergeSort(mid));
    }

  • 逆序对问题(LeetCode 493. 翻转对)

    • 题目要求:统计数组中满足 nums[i] > 2 * nums[j] 的逆序对。

    • 解法:归并排序过程中统计逆序对。

    cpp

int count = 0;
void mergeAndCount(vector<int>& nums, int left, int mid, int right) {// ...合并逻辑...// 在合并前统计逆序对int i = left, j = mid + 1;while (i <= mid && j <= right) {if ((long)nums[i] > 2 * (long)nums[j]) {count += mid - i + 1;j++;} else {i++;}}
}

四、如何选择?

  1. 数据规模小 → 冒泡排序(或插入排序)。

  2. 数据规模大 → 归并排序(或快速排序)。

  3. 需要稳定性 → 归并排序。

  4. 内存有限 → 冒泡排序(原地排序)。



三、对比总结

特性冒泡排序归并排序
时间复杂度O(n²)(最坏/平均)O(n log n)(所有情况)
空间复杂度O(1)(原地排序)O(n)(需额外空间)
稳定性稳定稳定
适用场景小数据、部分有序数组大规模数据、外部排序

 

http://www.dtcms.com/wzjs/538236.html

相关文章:

  • wordpress网站在哪百度爱采购怎么推广
  • 建自己博客网站电商网站设计趋势
  • 模板式网站建设广州平台公司
  • 最新备案的网站邯郸信息港聊天室
  • 上海高端网站建设高端网站建设游戏开发大亨内购破解版
  • 做商业网站要交税吗企业官网模板站
  • 滨海营销型网站建设中国对外贸易公司排名
  • 小企业网站建设一般收费网站主题页
  • 运城环保局网站王建设最低价网站建设
  • 怎么快速做网站排名如何制作图片
  • 视频制作培训机构推荐网站流量seo
  • 电子商务网站建设与管理答案企业黄页顺企网
  • 网站着陆页有多少个鞍山人才网站
  • 天长做网站的包头网站制作公司
  • 做任务什么网站企业做网站的合同
  • 网站关键词突然搜不到了京东商城网页版
  • php网站开发案例教程网站做聚合是啥意思
  • 赤峰市做网站多少钱上海建企业网站
  • 韩国学校网站模板wordpress 豆瓣主题
  • 好看的旅游网站模版什么是网络营销效果评估
  • 网站和做空间页面模板不包括
  • 什么网站可以做设计赚钱光辉网站建设
  • 网站开发的需求分析论文美术学院网站建设
  • php商城建站系统淘宝网发布网站建设
  • 诸城公司做网站公司内部网站建设
  • 网站首页只显示域名如何创建网址免费注册
  • 深圳响应式网站设计好的做外贸的网站
  • 所见即所得的网页编辑器信誉好的镇江网站优化
  • 织梦wap手机网站模板wordpress文章id递增2
  • 游戏网站策划在线ps图