JAVA之各种排序算法(冒泡、选择、快排、二分法详细过程)

本文详细介绍了JAVA中的四种排序算法:冒泡排序、选择排序、快速排序以及二分法查找。通过原理分析和代码实现,帮助读者理解这些基础排序算法的工作机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

掌握算法是作为程序员的基本必备素质,而排序也是各种算法的基础,虽说java帮我们封装好了各种数据类型的排序方法,可是我们还是要知道他的原理,下面我就说几种常用的算法及原理;

冒泡排序:

原理:相邻元素两两比较,大的往后放,每一次完毕,最大值出现在了最大索引处;
下面我们用图的方式直观的给大家展示
在这里插入图片描述
从上面的图来看,每一次比较交换的算法应该是

/for(int i=0;i<arr.length-1;i++){
   
   
 		if(arr[i]>arr[i+1]){
   
   
    			//值交换
       			 int t=arr[i];
 				 arr[i]=arr[i+1];
				 arr[i+1]=t;
		  }
}

首次比较五个数我们只需要比较四次;每多一次排序,少比较一次,因此i<arr.length-1;而这个过程我们需要五次的重复,每次我们给循环条件 -1;而这也是可以简化的,所以最后我们优化过后的算法为:

private static void sort(int[] arr) {
   
   
        for(int j=0;j<arr.length;j++){
   
   
            for (int i = 0; i <  arr.length - 1 -j ; i++) {
   
   
                if (arr[i] > arr[i + 1]) {
   
   
                    //值交换
                    int t = arr[i]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值