数组中三种常用的排序方法/新手向(另外有大招和动图)

1  冒泡排序法

理论逻辑:从前向后遍历,数组中前后两个数进行比较,拿从大到小排序举例子,这时候就需要把大的数拎出来赋值,我们可以利用“三变量交换法”把两个数的数值进行交换,一轮比较赋值过后然后再次循环,最终可以得到咱们想要的顺序

演示如下

这里用的是随机数来排序,关键点从注释开始,因为中间可能存在已经排序结束的情况,咱们可以用“flag” 来定义满足比较条件的循环(有变换赋值的情况),不满足的直接用break跳出

2 插入排序

理论逻辑:从第二个值开始,向后拓展轮数,并且从后向前开始遍历,执行插入的过程

代码演示如下

先定义每轮要插入的数(由i来决定),然后用boolean来查看值是否插入,再定义j来从后向前遍历,-1的原因是不需要和自身来比较,仍然用双循环结构来完成,主要还是通过赋值来实现插入

3 选择排序

逻辑理论:每一轮选定一个基准值,然后向后遍历,找到一个最小值,交换位置

演示如下

先定义基准值和基准值位置,然后再每一轮中找最小值,并且记录最小值的值和位置,循环结束后把最小值位置的值和基准值互换,每次循环都可以找到最小的数

4 大招来了!!

如果要求只是按顺序排列的话, 其实咱们可以直接一步到位,直接输入Arrays.sort(a);a是数组就可以直接排序了,

如果想要逆序排列的话,可以直接定义新数组,数据互换,重新赋值就好了,具体如下

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值