当前位置:网站首页>【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;
}
}
}
}
如果觉得对你有帮助的话:
点赞,你的认可是我创作的动力!
️ 收藏,你的青睐是我努力的方向!
️ 评论,你的意见是我进步的财富!
边栏推荐
- 【每日一题】【leetcode】25. 数组-旋转数组的最小数字
- 【数仓设计】企业数仓为什么要进行分层?(六大好处)
- NFT digital collection development issue - digital collection platform
- Taurus.MVC WebAPI 入门开发教程4:控制器方法及参数定义、获取及基础校验属性【Require】。
- 易观千帆银行用户体验中心:聚焦银行APP用户体验
- SWIG Tutorial "One"
- Mysql statement analysis, storage engine, index optimization, etc.
- Please check the preparation guide for the 2022 Huawei Developer Competition
- 匿名函数和全部内置函数详细认识(下篇)
- 请查收 2022华为开发者大赛备赛攻略
猜你喜欢

Cesium快速上手4-Polylines图元使用讲解

Zijin Example

易基因|深度综述:m6A RNA甲基化在大脑发育和疾病中的表观转录调控作用
![[Semantic Segmentation] DeepLab Series](/img/3d/f06c04522db40ad17f7f725613a035.png)
[Semantic Segmentation] DeepLab Series

scala集合

fastposter v2.9.1 程序员必备海报生成器

dedecms支持Word内容自动导入

Introduction to program debugging and its use

Oracle数据库备份dmp文件太大,有什么办法可以在备份的时候拆分成多个dmp吗?

【教程】HuggingFace的Optimum组件已支持加速Graphcore和英特尔Habana芯片
随机推荐
web安全入门-Kill Chain测试流程
systemui shield notification bar
Zijin Example
Recommend a few had better use the MySQL open source client, collection!
电商秒杀项目收获(二)
It is reported that the original Meitu executive joined Weilai mobile phone, the top product may exceed 7,000 yuan
Colocate Join :ClickHouse的一种高性能分布式join查询模型
一个 ABAP Development Tool 自定义 service endpoint 的测试工具
功能测试vs.非功能测试:能否非此即彼地进行选择?
640. Solving Equations: Simple Simulation Problems
【每日一题】【leetcode】25. 数组-旋转数组的最小数字
2025年推出 奥迪透露将推出大型SUV产品
关于“算力”,这篇文章值得一看
[Letter from Wu Enda] The development of reinforcement learning!
HUAWEI CLOUD DevCloud received the highest-level certification of the first batch of cloud-native technology architecture maturity assessments by the China Academy of Information and Communications Te
Parse the value of uuid using ABAP regular expressions
Redis -- Nosql
Allwinner V853 development board transplants LVGL-based 2048 games
MySQL Principle and Optimization: Update Optimization
Ameya360成为稳先微电子中国区域授权代理!