class 004 选择 冒泡 插入排序

server/2024/10/9 19:22:44/

我感觉这个真是没有什么好讲的, 这个是比较简单的, 感觉没有什么必要写一篇博客, 而且这个这么简单的排序问题肯定有人已经有写好的帖子了, 肯定写的比我好, 所以我推荐大家直接去看“左程云”老师的讲解就很好了, 一定是能看懂的, 要是用文字形式再写一遍, 反而有点画蛇添足了. 这里就将三个排序的代码写上.

这三个排序算法中唯一需要注意的是:插入排序, 这个在小数据量的时候排序的速度是非常快的, 一般认为数组长度在 10 ~ 50 之间, 插入排序的效率是非常快的. 后续学习的希尔排序, Tim 排序都有插入排序的参与. Tim 排序是 Python 和 Java 中内置的排序方式, 有兴趣可以去了解一下.

这里就直接附上对应的链接, 大家自己直接去看吧!!!

算法讲解004【入门】选择、冒泡、插入排序-左程云-算法通关-哔哩哔哩视频 (bilibili.com)

在这里插入图片描述

交换的方法实现:

public static void swap(int[] arr, int i, int j) {  int tmp = arr[i];  arr[i] = arr[j];  arr[j] = tmp;  
}

1. 冒泡排序

public static void bubbleSort(int[] arr) {  if (arr == null || arr.length < 2) {  return;  }  for (int i = 0; i < arr.length - 1; i++) {  for (int j = 0; j < arr.length - i - 1; j++) {  if (arr[j] > arr[j + 1]) {  swap(arr, j, j + 1);  }  }  }  
}

2. 选择排序

public static void selectionSort(int[] arr) {  if (arr == null || arr.length < 2) {  return;  }  for (int minIndex, i = 0; i < arr.length - 1; i++) {  minIndex = i;  for (int j = i + 1; j < arr.length; j++) {  if (arr[j] < arr[minIndex]) {  minIndex = j;  }  }  swap(arr, i, minIndex);  }  
}

3. 插入排序

public static void insertionSort(int[] arr) {  if (arr == null || arr.length < 2) {  return;  }  for (int i = 1; i < arr.length; i++) {  for (int j = i - 1; j >= 0 && arr[j] > arr[j + 1]; j--) {  swap(arr, j, j + 1);  }  }  
}

http://www.ppmy.cn/server/129413.html

相关文章

VUE 开发——Vue学习(二)

一、watch侦听器 作用&#xff1a;监视数据变化&#xff0c;执行一些业务逻辑或异步操作 简单写法 <div id"app"><textarea v-model"words"></textarea></div><script>const app new Vue({el:#app,data: {words: },watch…

重学SpringBoot3-集成Redis(三)之注解缓存策略设置

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 重学SpringBoot3-集成Redis&#xff08;三&#xff09;之注解缓存策略设置 1. 引入 Redis 依赖2. 配置 RedisCacheManager 及自定义过期策略2.1 示例代码&#xff1a;自定…

国创——StyleGAN模型训练和生成虚拟人脸

ai生成的我只是搬运工 StyleGAN模型训练和生成虚拟人脸的具体代码示例可以通过参考多个研究论文中的实现细节来获取。以下是一些关键步骤和代码片段的概述&#xff1a; 1. 数据准备 需要准备一个大规模的真实人脸数据集&#xff0c;例如FFHQ&#xff08;Flickr-Faces-HQ&…

某象异形滑块99%准确率方案

注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路 如有侵犯,请联系作者下架 该文章模型已经上线ocr识别网站,欢迎测试!!,地址:https://yxlocr.windy-rain.cn/ocr/slider/6 所谓的顶象异形滑块,是指没有采用常规的缺口,使用各种形状的…

考研报名记录冲冲冲

研究生报名 网址 https://yz.chsi.com.cn/apply/ 报名包括网上报名和网上确认两个阶段&#xff0c;所有考生均须在规定时间内参加网上报名和网上确认。网上报名时间为2024年10月15日至10月28日&#xff08;网上预报名时间为2024年10月9日至10月12日&#xff0c;网上预报名和正…

解析TMalign文本文件中的转换矩阵

TM-align 将两个蛋白质结构通过旋转和位移对齐后&#xff1a; TMalign test1.pdb test2.pdb -m mtx.txt 输出转换矩阵&#xff0c;文件内容为&#xff1a; ------ The rotation matrix to rotate Chain_1 to Chain_2 ------ m t[m] u[m][0] u[…

​nginx负载均衡的五种算法​

一、Nginx负载均衡算法 1、轮询&#xff08;默认&#xff09; 每个请求按时间顺序逐一分配到不同的后端服务&#xff0c;如果后端某台服务器死机&#xff0c;自动剔除故障系统&#xff0c;使用户访问不受影响。 例如&#xff1a; upstream bakend { server 192.168.0.1; …

leetcode 刷题day38动态规划Part07 打家劫舍(198.打家劫舍、213.打家劫舍II、337.打家劫舍III)

198.打家劫舍 思路&#xff1a; 1、dp[i]为到第i家偷到的最高金额。 2、如果偷第i家&#xff0c;那么dp[i]dp[i-2]nums[i],如果不偷&#xff0c;则dp[i]dp[i-1]&#xff0c;所以递推公式dp[i]max(dp[i-2]nums[i],dp[i-1])。 3、初始值&#xff0c;根据递推公式&#xff0c;我们…