首页 > 其他分享 >912.排序数组--冒泡排序

912.排序数组--冒泡排序

时间:2024-02-14 13:11:46浏览次数:21  
标签:nums -- 复杂度 ++ 冒泡排序 int 数组 912

1.题目介绍

给你一个整数数组 nums,请你将该数组升序排列。

示例 1:
输入:nums = [5,2,3,1]
输出:[1,2,3,5]

示例 2:
输入:nums = [5,1,1,2,0,0]
输出:[0,0,1,1,2,5]

2.题解

2.1 冒泡排序

思路

跟选择排序,固定一个i,后续者不断打擂台挑战不同,冒泡排序永远是两个邻接值比较,较大值不断向后冒泡,冒泡到最后位置的必定是当前较大值。

代码

#include<bits/stdc++.h>
using namespace std;

int main(){
	int n;
	cin >> n;
	vector<int> a(n);
	for (int i = 0; i < n; i++){
		cin >> a[i];
	}
	
	for(int i = 0; i < n; i++){
		for(int j = 1; j < n - i; j++){
			if (a[j] < a[j - 1]) swap(a[j], a[j - 1]); 
		}
	}
	
	for (int i = 0; i < n; i++){
		cout << a[i] << ' ';
	}
}

复杂度

1.时间复杂度: \(O(n^2)\)
2.空间复杂度: \(O(n)\)

标签:nums,--,复杂度,++,冒泡排序,int,数组,912
From: https://www.cnblogs.com/trmbh12/p/18015147

相关文章

  • IfcMaterial
    IfcMaterial实体定义IfcMaterial是一种均匀或不均匀的物质,可用于形成元素(物理产品或其组件)。 IfcMaterial是材料名称和定义的基本实体;这包括通过名称和分类(通过参考外部分类)进行识别,以及IfcMaterialProperties(的子类型)定义的材料特性(各向同性或各向异性)的关联。IfcMaterial的......
  • 【算法】【动态规划】钢条切割
    1 题目来自算法导论的一道经典题目:2 解答动态规划原理虽然已经用动态规划方法解决了上面问题,但是大家可能还跟我一样并不知道什么时候要用到动态规划。总结一下上面的斐波拉契数列和钢条切割问题,发现两个问题都涉及到了重叠子问题,和最优子结构。①最优子结构用动态规......
  • java 工厂模式
    工厂模式(FactoryPattern)是Java中常用的一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。Java中的工厂模式主要有三种:简单工厂模式(SimpleFactoryPattern)、工厂方......
  • 912.排序数组--选择排序
    1.题目介绍给你一个整数数组nums,请你将该数组升序排列。示例1:输入:nums=[5,2,3,1]输出:[1,2,3,5]示例2:输入:nums=[5,1,1,2,0,0]输出:[0,0,1,1,2,5]2.题解2.1插入排序思路打擂台,每次确定第一名,第二名,第三名,依次往后代码#include<bits/stdc++.h>usingnamespace......
  • java 抽象工厂模式
    抽象工厂模式(AbstractFactoryPattern)是一种创建型设计模式,它提供了一种方式来封装一组具有共同主题的单个工厂,而不需要指定它们的具体类。在抽象工厂模式中,每个工厂都负责创建一组产品(通常是一系列产品或产品线),这些产品通常相互关联或有某种约束。在Java中实现抽象工厂模式,你通......
  • 什么是 axios?axios与promise区别
    Axios是一个基于promise的HTTP库,可以用在浏览器和node.js中promise是现代javascript中异步编程的基础,是一个由异步函数返回的可以向我们指示当前操作所处的状态的对象使用cdn:<scriptsrc="https://unpkg.com/axios/dist/axios.min.js"></script>//为给定ID的u......
  • 创新指南|人工智能改善营销成果的10种方式
    GenAI如今非常流行。这并不是一件坏事,大型语言模型(LLM)已经在扰乱营销和电子商务。但人工智能还有其他方法可以提高营销成果,这些方法更快、更容易,最重要的是更便宜。在本文中,我们将介绍改善营销成果的10种技术。01.数据驱动的多点触控归因(DDMTA)人们普......
  • Linux之驱动管理
    一、相关概念驱动概念驱动与底层硬件直接打交道,充当了硬件与应用软件中间的桥梁。将驱动程序载入内核,应用程序可以通过系统调用接口来访问(驱动)底层的硬件设备。驱动功能对设备初始化和释放把数据从内核传送到硬件和从硬件读取数据读取应用程序传送给设备文件的数据......
  • Go - Project structure
    TheGolanguagemaintainerhasnostrongconventionaboutstructuringaprojectin Go.However,onelayouthasemergedovertheyears:project-layout(https://github.com/golang-standards/project-layout).Ifourprojectissmallenough(onlyafewfiles),......
  • P1059 [NOIP2006 普及组] 明明的随机数
    1.题目介绍[NOIP2006普及组]明明的随机数题目描述明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了\(N\)个\(1\)到\(1000\)之间的随机整数\((N\leq100)\),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学......