直接插入排序---java实现

本文详细介绍了Java中快速排序算法的实现过程,并通过优化减少元素交换次数,提高算法效率。

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

思路:遍历无序的原数组,把第i个的后一个即i+1去与前面的i个逐个比较...

解法一:

package com.sheepmu.text;

import java.util.Arrays;
  /*   
  * @author sheepmu
  */ 
public class Sort {
	 public static void main(String[] args){
		 int[] arr={64,5,7,89,6,24};
		 insertSort(arr);
		 System.out.println(Arrays.toString(arr));
	 }	 	 
	 public static void insertSort(int[] arr){
		 int len=arr.length;
		 int temp=0;
		 for(int i=0;i<len-1;i++){//要len-1,不然后面i+1要越界。
			  temp=arr[i+1];	 
			  for(int  j=i;j>=0;j--){
				  if(temp<arr[j]){
					  arr[j+1]=arr[j];
					  arr[j]=temp;
					  }
			  }
			 
		 }
	 }
}	 
 
解法二:

package com.sheepmu.text;

import java.util.Arrays;
  /*   
  * @author sheepmu
  */ 
public class Sort {
public static void main(String[] args){
int[] arr={64,5,7,89,6,24};
insertSort(arr);
System.out.println(Arrays.toString(arr));
}  
public static void insertSort(int[] arr){
int len=arr.length;
int j,temp=0;
for(int i=0;i<len-1;i++){//要len-1,不然后面i+1要越界。
 temp=arr[i+1];
 j=i;
 while(j>=0&&temp<arr[j]){
 arr[j+1]=arr[j];
  j--;
 }
 arr[j+1]=temp;//因为上面运行完了后j--咯,所以这里是arr[j+1]=temp;而不是arr[j]=temp;
}
}
}  
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值