文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

java中怎么实现冒泡排序和选择排序

2023-06-20 13:06

关注

这篇文章将为大家详细讲解有关java中怎么实现冒泡排序和选择排序,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。


1、冒泡排序

冒泡排序(Bubble Sorting)的基本思想是:通过对待

排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。

因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下
来没有进行过交换,就说明序列有序。

图解冒泡排序算法的过程

原始数组:3, 9, -1, 10, 20

第一趟排序

(1) 3, 9, -1, 10, 20 // 如果相邻的元素逆序就交换

(2) 3, -1, 9, 10, 20

(3) 3, -1, 9, 10, 20

(4) 3, -1, 9, 10, 20

第二趟排序

(1) -1, 3, 9, 10, 20 //交换

(2) -1, 3, 9, 10, 20

(3) -1, 3, 9, 10, 20

第三趟排序

(1) -1, 3, 9, 10, 20

(2) -1, 3, 9, 10, 20

第四趟排序

(1) -1, 3, 9, 10, 20

小结冒泡排序规则

(1) 一共进行 数组的大小-1 次 大的循环

(2)每一趟排序的次数在逐渐的减少

(3) 如果我们发现在某趟排序中,没有发生一次交换, 可以提前结束冒泡排序。这个就是优化

import java.util.Arrays;public class BubbleSort {public static void main(String[] args) {// TODO Auto-generated method stub        int arr[]= {3,9,-1,10,-2};        //第i+1趟排序,将最大的数排在最后        int temp=0;//临时变量        for(int i=0;i<arr.length-1;i++) {//定义第几轮排序        for(int j=0;j<arr.length-1-i;j++) {        if(arr[j+1]<arr[j]) {         temp=arr[j];        arr[j]=arr[j+1];        arr[j+1]=temp;        }        }        System.out.println("输出第"+(i+1)+"趟排序的结果");        System.out.println(Arrays.toString(arr));        }             }}

运行结果:

输出第1趟排序的结果
[3, -1, 9, -2, 10]
输出第2趟排序的结果
[-1, 3, -2, 9, 10]
输出第3趟排序的结果
[-1, -2, 3, 9, 10]
输出第4趟排序的结果
[-2, -1, 3, 9, 10]

2、选择排序法

排序思路:

原始的数组 : 101, 34, 119, 1

第一轮排序 : 1, 34, 119, 101

第二轮排序 : 1, 34, 119, 101

第三轮排序 : 1, 34, 101, 119

说明:

选择排序一共有 数组大小 - 1 轮排序

每1轮排序,又是一个循环, 循环的规则(代码)

import java.util.Arrays;public class QuickSort {    public static void main(String[] args) {       //int []arr={ 8,3,2,1,7,4,6,5};       int [] arr={101,34,109,1};       quicksort(arr);    }    public static void quicksort(int []arr){        for(int j=0;j<arr.length-1;j++) {            int minindex=j;//假定当前下标为最小值下标            int minnumber=arr[j];//假定当前元素为最小值            for (int i = 1+j; i < arr.length; i++) {                if (arr[i] < minnumber) {//若假定最小值并不是最小的                    minnumber = arr[i];//重置minnumber                    minindex = i;//重置minindex                }            }            //将最小值交换            arr[minindex] = arr[j];            arr[j] = minnumber;            System.out.println("第"+(j+1)+"轮");            System.out.println(Arrays.toString(arr));        }    }}

关于java中怎么实现冒泡排序和选择排序就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯