冒泡排序的优化版本

简介: 冒泡排序的优化版本
void bubbleSort(vector<int>& nums) {
 int n = nums.size();
 bool flag = false;
 for (int i = 0; i < n - 1; ++i) {
  flag = false;
  for (int j = 0; j < n - 1 - i; ++j) {
  if (nums[j] > nums[j + 1]) {
  //某一趟排序中,只要发生一次元素交换,flag就从false变为了true
  //也即表示这一趟排序还不能确定所剩待排序列是否已经有序,应继续下一趟循环
  swap(nums[j], nums[j + 1]);
  flag = true;
  }
 }
 //但若某一趟中一次元素交换都没有,即依然为flag = false
 //那么表明所剩待排序列已经有序
 //不必再进行趟数比较,外层循环应该结束,即此时if (!flag) break; 跳出循环
 if (!flag) break;
 }
目录
相关文章
|
6月前
|
搜索推荐 算法
冒泡排序的效率的优化
冒泡排序的效率的优化
43 0
|
搜索推荐 算法 索引
冒泡排序算法的实现和优化~
冒泡排序算法的实现和优化~
|
搜索推荐 算法
|
6月前
|
搜索推荐 算法 JavaScript
探索冒泡排序:原理、实现与优化
探索冒泡排序:原理、实现与优化
|
6月前
|
搜索推荐 算法
常见排序算法以及冒泡排序的基础使用方法
常见排序算法以及冒泡排序的基础使用方法
40 0
|
12月前
|
搜索推荐 Java
冒泡排序算法的Java实现及优化
冒泡排序算法的Java实现及优化
|
算法 搜索推荐
你确定懂冒泡排序?用动画的方式讲懂冒泡排序及其优化方式
基本概念 冒泡排序是一种基础的排序算法。其基本思想是通过不断地比较相邻元素并在必要时进行交换,将最大(或最小)的元素"冒"到序列的一端。 排序步骤 先来感受到冒泡排序的步骤吧
89 0
|
算法 搜索推荐 C语言
用或不用大O来优化代码(选择排序)
用或不用大O来优化代码(选择排序)
84 0
|
搜索推荐 算法
快速排序1(hoare版本)
快速排序1(hoare版本)
122 0
BXA
|
存储 机器学习/深度学习 人工智能
漫谈排序算法及其优化方案
在计算机科学中,排序算法(Sorting Algorithm)是一种将一组数据按照指定顺序进行排列的算法。 通常情况下,这种指定的顺序是由一个*排序关键字*所决定的,例如,按照学生的考试成绩排序,或者按照工资大小排序等
BXA
87 0