学习java,开始写博客! 主要是为了方便以后复习,同时给一些学习的同学参考,我会尽量认真写很多注释,希望大家能多留言支持下我!
第一章:冒泡排序
作用:将一个数组进行升降排序。
原理:定义一个数组,运用for循环,将数组中的第一个元素和第二个元素进行比较大小调换,将较大的元素放在第二给元素。循环比较第二个元素和第三个元素、第三个元素和第四个元素、、、、、、。这样的话最后的一个元素就一定是最大了。如下:
public static void main(String[] args){
int[] arr={5,2,6,3,5,8,2};
for(int i=0;i<arr.length-1;i++){
if(arr[i]>arr[i+1]){ //比较大小 将较大的值赋值后面的元素
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
System.out.println(arr[arr.length-1]);//输出最后的元素 也就是最大的一个元素
}
这个样子的话第一步就完成了;
接着我们只需要循环知道数组中有多少个元素,然后每循环一次将剩余中最大的排序到最后面,整个数组冒泡排序就完成了。如下:
public static void main(String[] args){
int[] arr={5,2,6,3,5,8,2};
for(int j=0;j<arr.length-1;j++){
for(int i=0;i<arr.length-1-j;i++){//循环中 arr.length-1-j减j是将已经排序好的元素就不去比较了,不减也是可以的
if(arr[i]>arr[i+1]){//比较大小
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
}
for(int a:arr){
System.out.print(a+" ");//输出所以元素
};
}
好了这样整个冒泡循环就完成了。
最后感兴趣的可以试下交换2个值 可以使用运算符 异或“^” 如下:
if(arr[i]>arr[i+1]){//比较大小
arr[i] ^= arr[i+1];
arr[i+1] ^= arr[i];
arr[i] ^= arr[i+1];
}
结果中2个值交换了。