Java排序介绍(冒泡排序,简单选择排序)

目录

1.冒泡排序代码实现(这里举例从小到大排)

        1.1介绍

       1.2 算法步骤

       1.3实验代码

2.简单选择排序(这里举例由小到大排)

     2.1介绍

    2.2算法步骤

    2.3实验代码


1.冒泡排序代码实现(这里举例从小到大排)

        1.1介绍

              冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序按自己要求的大小序列错误就把他们交换过来。

       1.2 算法步骤

               1.2.1比较相邻的元素。如果第一个比第二个大,就交换他们两个。

               1.2.2对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,                         最后的元素会是最大的数。

               1.2.3针对所有的元素重复以上的步骤,除了最后一个。

               1.2.4持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

       1.3实验代码

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int t;
        int[] a = new int[]{9,8,7,6,5,4,3,2,1};
        //冒泡排序
        for(int i=0;i<a.length-1;i++){ //i<a.length-1,因为最后要用倒数第二个和最后一个比较
            for(int j=0;j<a.length-1-i;j++){ //每循环一次,就会排出一个最大值
                if(a[j]>a[j+1]){  //调换
                    t=a[j];
                    a[j]=a[j+1];
                    a[j+1]=t;
                }
            }
        }
        System.out.println(Arrays.toString(a));//转换为字符串输出
        //实验结果  [1, 2, 3, 4, 5, 6, 7, 8, 9]
    }
}

2.简单选择排序(这里举例由小到大排)

     2.1介绍

         在待排序数组中选出最小的(或最大)的与第一个位置的数据交换 然后在剩下的待排序数组中找出最小(或最大)的与第二个位置的数据交换,以此类推,直到第n-1个元素。

    2.2算法步骤

          ① 第一轮从下标为 1 到下标为 n-1 的元素中选取最小值,若小于第一个数,则交换
          ② 第二轮从下标为 2 到下标为 n-1 的元素中选取最小值,若小于第二个数,则交换
          ③ 依次类推下去……

    2.3实验代码

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int t;
        int k;
        int[] a = new int[]{9,8,7,6,5,4,3,2,1};
        //选择排序
        for(int i=0;i<a.length-1;i++){  //总共排length-1次
            k=i;  //将k开始定位到i
            for(int j=i+1;j<a.length;j++){
                if(a[k]>a[j]){ //挑选出最小值的下标
                    k=j;
                }
            }
            if(k!=i){
                t=a[k];       //如果k的下标与i不同,则要交换
                a[k]=a[i];
                a[i]=t;
            }
        }
        System.out.println(Arrays.toString(a)); //输出打印成字符串
        //实验结果 [1, 2, 3, 4, 5, 6, 7, 8, 9]
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值