【数据结构与算法】三种简单排序算法,包括冒泡排序、选择排序、插入排序算法

 冒泡排序算法

冒泡排序他是通过双重循环对每一个值进行比较,将小的值向后移动,以达到最终排序的结果,他的时间复杂度为O(n^2)。

    /*** 冒泡排序* @param arr*/public static void bubbleSort(int[] arr){int l =arr.length;for (int i = 0; i <l-1 ; i++) {for (int j = 0; j <l-i-1 ; j++) {if (arr[j]>arr[j+1]){int temp =arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}}

选择排序算法

选择排序也是进行两次循环遍历,获取最大或最小的值,然后进行交换。他的时间复杂度也为O(n^2)。

    /*** 选择排序算法* @param arr*/public static void selectSort(int[] arr){int l =arr.length;for (int i = 0; i <l-1 ; i++) {int minIndex =i;for (int j = i+1; j <l ; j++) {if (arr[j]<arr[minIndex]){minIndex=j;}}int temp =arr[i];arr[i]=arr[minIndex];arr[minIndex]=temp;}}

插入排序算法

插入排序是将一个数在前面已经排好的有序列表中进行遍历,插入到符合顺序的地方。以此来获得一个长度+1的有序列表。他的时间复杂度也为O(n^2)。

    /*** 插入排序算法* @param arr*/public static  void  insertSort(int[] arr){int l =arr.length;for (int i = 1; i <l ; i++) {int insert=arr[i];int j =i-1;while (j>=0&&arr[j]>insert){arr[j+1]=arr[j];j--;}arr[j+1]=insert;}}

 


未完待续......

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/102116.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Element UI怎么安装呢?

安装 :::warning 注意 后续演示将会在 Vue CLI 搭建的 Vue 项目上进行操作。如需要请查看 Vue CLI 安装 ::: 通过 YARN 命令安装 $ yarn add element-ui完整引入 代表一次性引入所有组件&#xff0c;比较省心省事&#xff0c;但是项目的打包体积也会跟着变大。 // main.js…

3.简单场景构建

在新建的项目中&#xff0c;默认存在 Main Camera 和 Directional Light两个对象。若是缺失&#xff0c;可通过选择菜单中的 Game Object->Camera 和 Geme Object->Light->Directional Light进行创建。 1.添加地形及底图 通过在Cesium面板中选择 Cesium World Terrai…

[Spring] Springmvc执行流程

介绍 SpringMVC是一种基于Spring实现了Web MVC设计模式的请求驱动类型的轻量级Web框架&#xff0c;使用了MVC的架构模式思想&#xff0c;将Web层进行指责解耦&#xff0c;并管理应用所需的生命周期&#xff0c;为简化日常开发&#xff0c;提供了很大便利。 组件 组件Dispatche…

VAE模型(详细推导+实例代码)

文章目录 EM算法思路E步M步直观感觉 GMM模型VAEVAE思想从GMM到VAE公式推导重参数VAE神经网络另一个视角的VAE思想为什么引入encoder为什么要重参数噪声与重建 Discrete VAE 本文会从EM算法&#xff0c;GMM模型一步一步的的推导&#xff0c;在过渡到VAE模型&#xff0c;如果有熟…

Excel·VBA使用ADO合并工作簿

之前文章《ExcelVBA合并工作簿&#xff08;7&#xff0c;合并子文件夹同名工作簿中同名工作表&#xff0c;纵向汇总数据&#xff09;》处理合并工作簿问题&#xff0c;代码运行速度比较慢 而《ExcelVBA使用ADO读取工作簿工作表数据》读取数据非常快&#xff0c;那么是否可以使用…

车辆调度算法

参考资料 有什么车辆调度算法的最新研究&#xff0c;比如用强化学习的方法&#xff1f; https://www.zhihu.com/question/312332312 策略算法工程师之路-图优化算法(一)(二分图&最小费用最大流) https://zhuanlan.zhihu.com/p/103825713 模拟退火&#xff08;SA&#xf…

1200*C1. k-LCM (easy version)(找规律)

Problem - 1497C1 - Codeforces 解析&#xff1a; 找规律即可&#xff0c;分为偶数的一半是偶数、偶数的一半是奇数、奇数三种情况 分别为 &#xff08;n/2&#xff0c;n/4&#xff0c;n/4&#xff09;&#xff08;n/2-1&#xff0c;n/2-1&#xff0c;2&#xff09;&#xff08…

多线程并发篇---第六篇

系列文章目录 文章目录 系列文章目录一、说一说自己对于 synchronized 关键字的了解二、说说自己是怎么使用 synchronized 关键字?三、什么是线程安全?Vector是一个线程安全类吗?一、说一说自己对于 synchronized 关键字的了解 synchronized关键字解决的是多个线程之间访问…

常见算法-双骰子游戏(Craps)

常见算法-双骰子游戏&#xff08;Craps&#xff09; 1、说明 一个简单的双骰子游戏&#xff0c;游戏规则如下&#xff1a; 玩家掷两个骰子&#xff0c;点数为1到6&#xff0c; 如果第一次点数和为7或11&#xff0c;则玩家胜&#xff0c;如果点数和为2、3或12&#xff0c;则…

Nlopt在matlab中的配置教程

step1&#xff1a;克隆代码并编译 编译的前提是已经安装好MinGW64 # 使用镜像加速 git clone https://gitclone.com/github.com/stevengj/nloptcd nlopt mkdir build cd build cmake -G"MinGW Makefiles" .. cmake --build .# 注意此处博主在mingw安装目录将mingw3…

windows10下 iperf3测试带宽

iperf3下载网址&#xff1a;iPerf - Download iPerf3 and original iPerf pre-compiled binaries 可以用来测试TCP以及UDP带宽质量 通俗来说是用来测试网速的 准备&#xff1a;两台设备 1. 根据自己的设备选择下载工具&#xff08;两台都要有&#xff0c;这里我用的Window…

vue实现瀑布流

1、在 src 目录下创建 component文件夹&#xff0c;在文件夹中创建 vue文件。 2、在 Vue文件中写入以下内容 <div class"pubu"><div class"left"><div class"pubu-item" v-for"item in left" :key"item.id"…

react antd table表格点击一行选中数据的方法

一、前言 antd的table&#xff0c;默认是点击左边的单选/复选按钮&#xff0c;才能选中一行数据&#xff1b; 现在想实现点击右边的部分&#xff0c;也可以触发操作选中这行数据。 可以使用onRow实现&#xff0c;样例如下。 二、代码 1.表格样式部分 //表格table样式部分{…

JVM面试题:(三)GC和垃圾回收算法

GC: 垃圾回收算法&#xff1a; GC最基础的算法有三种&#xff1a; 标记 -清除算法、复制算法、标记-压缩算法&#xff0c;我们常用的垃圾回收器一般 都采用分代收集算法。 标记 -清除算法&#xff0c;“标记-清除”&#xff08;Mark-Sweep&#xff09;算法&#xff0c;如它的…

右值引用, 完美转发, 万能引用, lambda表达式, 包装器 用法

右值引用&#xff0c;完美转发&#xff0c;万能引用 用法 //链表节点 template <typename T> struct __list_node {//1. __list_node(const T& val T()):_prev(nullptr), _next(nullptr), _val(val){}__list_node(T&& val):_prev(nullptr), _next(nullptr)…

canvas基础2 -- 形状

七巧板 七巧板本质上就是 分别由几个直线 拼成一个个图形&#xff0c;再将这些图形结合起来 var tangram [{ p: [{ x: 0, y: 0 }, { x: 800, y: 0 }, { x: 400, y: 400 }], color: "#caff67" },{ p: [{ x: 0, y: 0 }, { x: 400, y: 400 }, { x: 0, y: 800 }], col…

Maven下载与文件配置

文章目录 官网下载相应文件修改配置文件设置环境变量 官网下载相应文件 https://maven.apache.org/ 点击Download ,找到Files 下载好了&#xff0c;请解压&#xff0c;放在你需要存储的位置&#xff01; 修改配置文件 打开解压的文件&#xff1a; 在conf 下有一个setting…

vscode远程ssh服务器且更改服务器别名

目录 1、打开VS Code并确保已安装"Remote - SSH"扩展。如果尚未安装&#xff0c;请在扩展市场中搜索并安装它。 2、单击左下角的"Remote Explorer"图标&#xff0c;打开远程资源管理器。 3、在远程资源管理器中&#xff0c;单击右上角的齿轮图标&#x…

IT行业有前景么? 优漫动游

IT行业非常有前景&#xff0c;我甚至一度觉得&#xff0c;如果你很迷茫&#xff0c;那么IT行业可能是绝大部分理工科的最佳选择。我知道有人不同意&#xff0c;先别急着反驳&#xff0c;听我说完先。 IT行业有前景么&#xff1f; 说到IT&#xff0c;人们对IT的第一印象是&…

这些负载均衡都解决哪些问题?服务、网关、NGINX?

在微服务项目中&#xff0c;有服务的负载均衡、网关的负载均衡、Nginx的负载均衡&#xff0c;这几个负载均衡分别用来解决什么问题呢&#xff1f; 一、服务的负载均衡 先抛出一个问题&#xff1a; 当一个微服务被多个实例部署时&#xff0c;如何分配和平衡请求的负载&#x…