首页 > 其他分享 >冒泡排序

冒泡排序

时间:2024-07-07 11:19:26浏览次数:17  
标签:arr false int 冒泡排序 flag sizeof

冒泡排序

#include <iostream>
using namespace std;

void bubbleSort(int arr[], int n) {
	bool flag = false;
    for (int i = 0; i < n-1; i++) {    // 外层循环,控制排序的轮数
        for (int j = 0; j < n-i-1 ; j++) {  // 内层循环,控制每轮比较的次数
            if (arr[j] > arr[j + 1]) {  // 如果前一个元素比后一个元素大
                // 交换两个元素的位置
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
                flag = true;
            }
        }
    }
    if(flag==false)
    {
    	return;
	}
}

int main() {
    int arr[] = {64, 34, 25, 12, 22, 11, 90};
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "Ori array: \n";
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;
    bubbleSort(arr, n);
    cout << "Sorted array: \n";
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;
    return 0;
}

标签:arr,false,int,冒泡排序,flag,sizeof
From: https://www.cnblogs.com/lwp-nicol/p/18288291

相关文章

  • [数据结构] 基于交换的排序 冒泡排序&&快速排序
    标题:[数据结构]基于交换的排序冒泡排序&&快速排序@水墨不写bug(图片来源于网络) 目录(一)冒泡排序优化后实现:(二)快速排序I、实现方法: (1)hoare法hoare法实现快排: (2)挖坑法挖坑法实现:(3)双指针法 双指针法实现:  II、快速排序复杂度分析:比较完备的快速排序实现如......
  • 使用go语言实现快速排序、归并排序、插入排序、冒泡排序、选择排序
    冒泡排序(BubbleSort):原理:比较相邻的元素,如果前一个比后一个大,就交换它们。这个过程会使得每一轮最大的元素“冒泡”到数组的末尾。时间复杂度:O(n^2)稳定性:稳定//BubbleSort函数使用冒泡排序算法对数组进行排序funcBubbleSort(arr[]int){ n:=len(arr) fori:=0......
  • Java实现简单的冒泡排序
    Java实现简单的冒泡排序核心思想:把相邻的两个数字两两比较,当一个数字大于右侧相邻的数字时,交换他们的位置,当一个数字和他右侧的数字小于或等于的时候,不交换。(小到大排序)例如有数组{3,1,5,7,4,2}第一次排序{3,1,5,7,4,2}//开始{1,3,5,7,4,2}//1和3互换{1,3,5,7,4,2......
  • Python 冒泡排序
    冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。以下是一个用Python实现的冒泡排序算法的例子:pythondefbubble_sort(lst):n=len......
  • P8500 [NOI2022] 冒泡排序 题解
    考虑特殊性质B。限制相当于钦定一些位置的值,其他位置无限制。可以发现性质:无限制的位置上填的值是单调不减的。证明:设得到的最优序列为\(A\),对于无限制的位置\(i,j\),若\(A_i>A_j\),交换\(i,j\)后逆序对个数必然减小。根据改性质,只需考虑每个位置对已经确定位置的位置的贡......
  • 冒泡排序程序
    #include<stdio.h>voidbubbleSort(intarr[],intsize){for(inti=0;i<size-1;i++){for(intj=0;j<size-1-i;j++)//每次将最大值放到最后所以会少i{if(arr[j]>arr[j+1]){......
  • 冒泡排序(C语言)
    一.冒泡排序的原理冒泡排序的原理是:从左到右,相邻元素进行比较,以升序为例,第1次遍历将最大的数沉底。经过n次遍历这组元素以升序排列->第1次遍历,两个相邻的数比较大小,若左边的数大于右边的数,则两个元素交换位置,反之,继续向后比较,当第1次遍历结束之后该组元素最大的数就被移动......
  • 冒泡排序、插入排序、快速排序
    三种排序:冒泡排序、插入排序、快速排序规则:冒泡排序:每一轮循环后,最大的一个数被交换到末尾,因此,下一轮循环就可以“刨除”最后的数,每一轮循环都比上一轮循环的结束位置靠前一位。插入排序:将待排序数组分为已排序和未排序两部分,初始已排序部分只包含第一个元素。然后,从第二个元素......
  • Qt中的多线程与线程池浅析+实例----冒泡排序和快速排序
    转自:https://www.cnblogs.com/wanghongyang/p/14902679.html今天学习了Qt中的多线程和线程池,特写这篇博客来记录一下2|02.多线程2|12.1线程类QThreadQt中提供了一个线程类,通过这个类就可以创建子线程了,Qt中一共提供了两种创建子线程的方式,先看一下这个类中提供的一些常用......
  • [排序算法]冒泡排序+快速排序全梳理!
    目录前言一、冒泡排序基本思路图解冒泡代码实现代码优化冒泡排序的特性总结:二、快速排序1.hoare版本图解演示代码实现特性总结2.挖坑法基本思路图解过程代码实现特性总结3.前后指针法基本步骤图解过程代码实现特性总结4.快速排序的优化三数取中小区间优化5.非递归实......