public class pxCharu {
public static void main(String[] args) {
int num1[]= {4,3,2,56,55,33,21,2222,3,4};
//数据为地址传递,所以排序后,num1中的值是跟着变化的
sort1(num1);
int num2[]= {4,3,2,56,55,33,21,2222,3,4};
System.out.println(Arrays.toString(num1));
sort2(num2);
System.out.println(Arrays.toString(num2));
}
//符合条件的数据与有序序列数据两两交换,最终达到将数据放入合适位置的目的
public static int[] sort1(int[] num) {
for(int i=1;i<num.length;i++) {
for(int j=i;j>0;j--) {
if(num[j]<num[j-1]) {
//运用异或(异或一个数两次,还得到这个数本身),交换两个数
num[j]=num[j]^num[j-1];
num[j-1]=num[j]^num[j-1];
num[j]=num[j]^num[j-1];
}
}
}
return num;
}
//通过临时存储要比较的数据,将符合条件的有序数据后移,最终将比较的数据插入合适的位置
public static int[] sort2(int[] num) {
for(int i=1;i<num.length;i++) {
int temp=num[i];
int j=i;
for(;j>0;j--) {
if(temp<num[j-1]) {
num[j]=num[j-1];
}else {
break;
}
}
num[j]=temp;
}
return num;
}
}
算法--插入排序--java代码
最新推荐文章于 2024-08-09 20:36:57 发布