排序法-冒泡排序法

java 复制代码
package com.jianstudy.array;
import java.util.Arrays;//导入Arrays工具类
public class ArrayDemo09 {
    public static void main(String[] args) {
       int [] array ={1,6,7,8,9,0,2365,36,78,77,78,5,33,7,85};
        sortMine(array);//调用自己写的排序方法
        for(int i : array){//使用增强for循环打印数组 for each循环
            System.out.print(i+" ");
        }
        //System.out.println(Arrays.toString(array));//使用Arrays类工具打印
    }
    //冒泡排序
    public static int[] sortMine(int[] a) {
     /*
        升序降序看要求
        1. 比较数组中,两个相邻的元素,如果前后项不等就交换他们的位置
        2. 每一次比较都会产生一个最大或者最小的数
        3. 下一轮则可以少一次排序
        4. 依次循环直至结束
         */
        int temp = 0;//两项交换时的中转项
        //升序 从小到大排序
        for (int i = 0; i < a.length-1; i++) {//外层循环 数组有几项 就循环n-1次
        /*
        1. 外层循环:i < a.length - 1
	含义:

	外层循环控制排序的轮数。

	对于一个长度为 n 的数组,最多需要 n - 1 轮排序才能确保数组完全有序。

	为什么是 i < a.length - 1?

	每一轮排序会将当前未排序部分的最大值"冒泡"到正确的位置。

	经过 n - 1 轮后,剩下的最后一个元素已经是最小的,无需再比较。
        */
            for (int j = 0; j < a.length-1-i; j++) {//内存循环 比较前后项大小 有大小就交换他们的位置
            /*
            2. 内层循环:j < a.length - 1 - i
	含义:
	
	内层循环负责在每一轮中比较相邻元素并交换。
	
	a.length - 1 - i 表示每一轮需要比较的范围。

	为什么是 j < a.length - 1 - i?

	每一轮排序后,最大的元素会被放到数组的末尾,因此下一轮无需再比较已经排序好的部分。

	i 表示已经排序好的元素个数,因此每一轮需要比较的范围逐渐缩小。
	*/
                if (a[j + 1] < a[j]) {//升序 比较两项 如果后项比前项小就交换前后项的位置 降序就是把小于号改成大于号
                    temp = a[j + 1];//先把后项先赋给中转项
                    a[j + 1] = a[j];//给然后把前项赋后项
                    a[j] = temp;//最后把存放后项的中转项赋给前项
                }
            }
        }
        return a;
    }
}

int [] array ={1,6,7,8,9,0,2365,36,78,77,78,5,33,7,85};

相关推荐
Gerardisite1 分钟前
如何在微信个人号开发中有效管理API接口?
java·开发语言·python·微信·php
lingggggaaaa14 分钟前
免杀对抗——C2远控篇&C&C++&DLL注入&过内存核晶&镂空新增&白加黑链&签名程序劫持
c语言·c++·学习·安全·网络安全·免杀对抗
闲人编程1 小时前
Python的导入系统:模块查找、加载和缓存机制
java·python·缓存·加载器·codecapsule·查找器
陈天伟教授1 小时前
基于学习的人工智能(5)机器学习基本框架
人工智能·学习·机器学习
我先去打把游戏先1 小时前
ESP32学习笔记(基于IDF):基于OneNet的ESP32的OTA功能
笔记·物联网·学习·云计算·iphone·aws
初願致夕霞1 小时前
学习笔记——基础hash思想及其简单C++实现
笔记·学习·哈希算法
故渊ZY1 小时前
Java 代理模式:从原理到实战的全方位解析
java·开发语言·架构
匿者 衍1 小时前
POI读取 excel 嵌入式图片(支持wps 和 office)
java·excel
一个尚在学习的计算机小白1 小时前
java集合
java·开发语言
小女孩真可爱1 小时前
大模型学习记录(五)-------调用大模型API接口
pytorch·深度学习·学习