当前位置:网站首页>【21天学习挑战赛】直接插入排序
【21天学习挑战赛】直接插入排序
2022-08-04 04:07:00 【Alex抱着爆米花】
活动地址:CSDN21天学习挑战赛
怕什么真理无穷,进一步有一份的欢喜。
【21天学习挑战赛】直接插入排序
我为什么参与挑战赛
1,机缘
读到研一了,暑假器件打开私信发现这个挑战赛就鼓起勇气参加了。
2,期待的收获
A, 本人在华南理工大学攻读专硕,目前研究方向是图像恢复,从事深度学习相关工作,目标是从事Java后端开发。
B, 期待您的反馈,如果有什么不对的地方,欢迎指正!
C, 期待认识志同道合的领域同行或技术交流。
如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦
什么是排序?
在计算机科学中定义为:计算机内根据一定规律将一组“无序”的数据元素调整为“有序”的数据元素。也就是说,我们是出于某种目的,对一堆数据让它变得富有规律,一般分为升序和降序。
- 升序:按从小到大的顺序排列(如1、3、5、6、7、9)。
- 降序:就是按从大到小的顺序排列(如9、8、6、4、3、1)。
直接插入排序的定义
将一条记录插入到已排好的有序表中,从而得到一个新的、记录数量增1的有序表。
直接插入排序的优劣
优势
简单,将数据插入有序表。
劣势
直接插入排序是由两层嵌套循环组成的。时间复杂度高,时间效率是O(n^2)。
直接插入排序的步骤
- 每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。 第一趟比较前两个数,然后把第二个数按大小插入到有序表中;
- 第二趟把第三个数据与前两个数从后向前扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。
️ 算法实现
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
public class InsertSort {
public static void main(String[] args) {
int[] arr = {
9, 20, 15, 37, 28, 23};
DirectInsertSort(arr);
System.out.println(Arrays.toString(arr));
}
public static void DirectInsertSort(int[] arr) {
//前第0位-第i-1位是有序的,如果第i位不是有序的进行寻位插入,
// 如果是有序的就忽略,进行判断下一位。
for (int i = 1; i < arr.length; i++) {
if (arr[i] < arr[i - 1]) {
int key = arr[i];
int j = i - 1;
//遍历前i-1位,寻找合适的位置
while (j >= 0 && key < arr[j]){
arr[j+1] = arr[j];
j--;
}
arr[j+1]=key;//插入第i位的值
}
}
}
}
如果觉得对你有帮助的话:
点赞,你的认可是我创作的动力!
️ 收藏,你的青睐是我努力的方向!
️ 评论,你的意见是我进步的财富!
边栏推荐
- 【MD5】采用MD5+盐的加密方式完成注册用户和登录账号
- 网络工程师入门必懂华为认证体系,附系统学习路线分享
- docker+bridge+redis master-slave+sentry mode
- MySQL查询优化与调优
- Eight guiding principles to help businesses achieve digital transformation success
- 使用serve搭建本地服务器
- Learn iframes and use them to solve cross-domain problems
- docker+网桥+redis主从+哨兵模式
- Stop behind.
- 【id类型和NSObject指针 ObjectIve-C中】
猜你喜欢
[Ryerson emotional speaking/singing audiovisual dataset (RAVDESS)]
docker+bridge+redis master-slave+sentry mode
【MD5】采用MD5+盐的加密方式完成注册用户和登录账号
张量篇-应用案例
高效IO模型
Based on the statistical QDirStat Qt directory
Implementing a server-side message active push solution based on SSE
帮助企业实现数字化转型成功的八项指导原则
if,case,for,while
drools从下载到postman请求成功
随机推荐
Introduction to mq application scenarios
if,case,for,while
自定义通用分页标签01
七夕节,我用代码制作了表白信封
Mockito unit testing
docker+bridge+redis master-slave+sentry mode
2022年软件测试——精选金融银行面试真题
【机器学习】21天挑战赛学习笔记(一)
2003. 每棵子树内缺失的最小基因值 DFS
机器学习模型的“可解释性”
拿捏JVM性能优化(自己笔记版本)
基于 SSE 实现服务端消息主动推送解决方案
Postgresql source code (66) insert on conflict grammar introduction and kernel execution process analysis
一文详解DHCP原理及配置
Enterprise live broadcast is on the rise: Witnessing focused products, micro-like embracing ecology
技术解析|如何将 Pulsar 数据快速且无缝接入 Apache Doris
SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropri
FPGA parsing B code----serial 3
Take care of JVM performance optimization (own note version)
JVM笔记