吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1450|回复: 0
收起左侧

[学习记录] 【自学笔记】 Java基础 - 数组的常用排序算法

[复制链接]
LongJL 发表于 2021-7-10 15:34
本帖最后由 LongJL 于 2021-7-10 15:39 编辑

数组之排序

数组的排序很多,这么将记录俩种最常见的。

  • 冒泡排序
  • 直接选择排序

冒泡排序

思想

冒泡算法的思想是,比较俩个相邻的元素,如果满足条件就交换位置。如:比较小的元素移到前面,大的元素就移到后面。这样经给n次的比较之后,小的值慢慢的从后往前移,就像气泡一样从底部浮到了顶部。

实现步骤解析

结构介绍:冒泡算法的主体是需要双层循环去实现的,第一层是控制循环轮数,轮数=数组长度-1,第二次循环主要是对比每个相邻的元素,通过判断是否需要交换位置。
过程解析:第一轮外循环走完时,这是已经把最大值移动到了最后,那么最后一个值在之后的轮数将不会在参与对比,依次类推每次把最大值往后移,最小值往前移。

示例图

H4$TYTRI9THJ`02$CE97P.png

代码

public class Bubble {
    public static void main(String[] args) {
        int[] array = {10,33,27,89,20,50,80};
        for (int i = 1;i<array.length;i++){
            for (int j = 0;j<array.length-i;j++){
                if (array[j]>array[j+1]){
                    int temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                }
            }
        }

        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i]);
            System.out.print(" ");
        }
        // result=> 10 20 27 33 50 80 89 
    }
}

直接选择排序

思想

将指定排序位置与其他数组元素分别对比,如果满足条件就交换元素。如:从数组中找出最大的元素,那么拿着数组的第一个元素与其他元素进行比较如果遇到比第一个元素大的那么放弃第一个元素,拿着这个比较大的元素继续与其他元素进行比较,直到找到最大的元素。记下下标,与指定的排序位置交换。

实现步骤解析

结构介绍:直接选择排序算法的主体是需要双层循环去实现的,第一层是控制当前符合要求的值存放的位置,第二层主要是为了对比哪个元素符合要求。
过程解析:第一轮外循环走完时,那么最大值已经与指定的排序位置交换(一般结尾开始排序),那么最后一个值在之后的轮数将不会在参与对比,经给数次的位置交换。就完成了排序。

示例图

YVP)ZKM(WHSHWB}V)FV~QTJ.png

代码

public class Select {
    public static void main(String[] args) {
        int[] array = {10,33,27,89,20,50,80};

        for (int i=1;i<array.length;i++){
            int index = 0;
            for (int j = 1;j<=array.length-i;j++){
                if (array[j]>array[index]){
                    index = j;
                }
            }
            int temp = array[array.length-i];
            array[array.length-i] = array[index];
            array[index] = temp;
        }

        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i]);
            System.out.print(" ");
        }
    }
}

免费评分

参与人数 1热心值 +1 收起 理由
Lency来找资源了 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 00:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表