数组(四)--冒泡排序
排序
冒泡排序:相邻两个元素进行比较,如果符合条件就换位。
工作原理:
1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3、针对所有的元素重复以上的步骤,除了最后一个。
4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
public class Demo8 {
public static void main(String[] args){
int[] arr={1,4,3,5,2,6};
/*
//排序前
printArray(arr);
//排序
bubbleSort(arr);
System.out.println();
//排序后
printArray(arr);
*/
//排序前
printArray(arr);
//排序
bubbleSort(arr);
System.out.println();
//排序后
printArray(arr);
}
//冒泡排序方法一
public static void bubbleSort(int[] arr){
for(int x=0;x<arr.length-1;x++){
for(int y=0;y<arr.length-x-1;y++){//-x:让每一次比较的元素减少,-1:是为了避免脚标越界。
if(arr[y]>arr[y+1]){
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
}
//冒泡排序方法二
public static void bubbleSort1(int[] arr){
for(int x=arr.length-1;x>0;x--){
for(int y=0;y<x;y++){
if(arr[y]>arr[y+1]){
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
}
//打印数组
public static void printArray(int[] arr){
System.out.print("[");
for(int i=0;i<arr.length;i++){
if(i!=arr.length-1)
System.out.print(arr[i]+" ");
else
System.out.print(arr[i]+"]");
}
}
}
还没有评论,来说两句吧...