当前位置:网站首页>【21天学习挑战赛】直接选择排序
【21天学习挑战赛】直接选择排序
2022-08-10 15:25:00 【Alex抱着爆米花】
活动地址:CSDN21天学习挑战赛
怕什么真理无穷,进一步有一份的欢喜。
【21天学习挑战赛】直接插入排序的数据操作
我为什么参与挑战赛
1,机缘
读到研一了,暑假假期打开私信发现这个挑战赛就鼓起勇气参加了。
2,期待的收获
A, 本人在华南理工大学攻读专硕,目前研究方向是图像恢复,从事深度学习相关工作,目标是从事Java后端开发。
B, 期待您的反馈,如果有什么不对的地方,欢迎指正!
C, 期待认识志同道合的领域同行或技术交流。
如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦
什么是直接选择排序?
直接选择排序的又称为简单选择排序,整个过程是每一趟都将无序区中的所有元素进行逐一比较,找到最小的元素,与无序区中的首个元素进行交换,然后有序区长度+1,无序区-1。重复上述步骤,直到所有元素都排列好。
直接选择排序的优劣
优势
简单易于实现,空间复杂度低,只涉及到元素间的交换,不用引入其他变量,空间复杂度为O(1)
劣势
时间复杂度高,因为是for循环的嵌套,并且是逐一比较,时间复杂度为O(n^2)
直接选择排序的步骤
- 在第一趟中,从n个记录中找出最小值与第1个记录交换
- 第二趟中,从n-1个记录中找出最小值与第2个记录交换
- …
- 第N趟中,从n-i+1个记录中与第i个记录交换,直到完成i=n-1时结束操作
️ 算法实现
public class SelectSort {
public static void main(String[] args) {
// input data
int[] a = {
11,34,20,10,12,35,41,32,43,14};
// 调用选择排序
sort(a);
// 查看排序结果
for (int data : a){
System.out.print(data + "\t");
}
}
private static void sort(int[] a){
// 外层循环用于控制循环的趟数
for (int i = 0;i < a.length - 1;i++){
int k = i;
// 内层循环的作用是在无序区中选出最小的元素并记录
for (int j = i + 1;j < a.length;j++){
if (a[j] < a[k]) {
k = j;
}
}
// 如果本轮选出的最小元素没有在对应的位置上则交换
if (k != i){
int tmp = a[i];
a[i] = a[k];
a[k] = tmp;
}
}
}
}
如果觉得对你有帮助的话:
点赞,你的认可是我创作的动力!
️ 收藏,你的青睐是我努力的方向!
️ 评论,你的意见是我进步的财富!
边栏推荐
猜你喜欢
fatal error C1083 Unable to open include file 'io.h' No such file
SWIG Tutorial "One"
Scala collections
Rich Dad Poor Dad Reading Notes
“低代码”编程或将是软件开发的未来
scala集合
关于“算力”,这篇文章值得一看
一个 ABAP Development Tool 自定义 service endpoint 的测试工具
程序调试介绍及其使用
FP6378AS5CTR SOT - 23-5 effective 1 mhz2a synchronous buck regulator
随机推荐
Colocate Join :ClickHouse的一种高性能分布式join查询模型
26、压缩及解压缩命令
Problem solving-->Online OJ (19)
SWIG tutorial "two"
fastposter v2.9.1 programmer must-have poster generator
Detailed understanding of all built-in functions (Part 2)
Please check the preparation guide for the 2022 Huawei Developer Competition
腾讯云TDP-对象存储COS产品新用户福利
E. Cross Swapping (and check out deformation/good questions)
Parse the value of uuid using ABAP regular expressions
scala 基础篇
How to code like a pro in 2022 and avoid If-Else
LeetCode_2598_剑指Offer Ⅱ 091.粉刷房子
Systemui status bar to add a new icon
Recommend a few had better use the MySQL open source client, collection!
Reids 源码导读
metaForce佛萨奇2.0系统开发功能逻辑介绍
NPM - Cannot read properties of null (reading 'pickAlgorithm') 解决方案
SYM32——RTC实时时钟程序讲解
嵌入式开发:嵌入式基础——使用指针数组映射外设