class BubbleSort{
/*冒泡排序
相邻两个元素进行比较,如果符合条件换位。
第一圈:最值出现在了最后位。
*/
public static void BubbleSort(int[] arr){
//遍历次数,最后一个不需要遍历
for(int x=0;x<arr.length-1;++x){
/*每次都是从0角标开始,所以y=0,第二圈结束后,y就不用取最后一个元素了,内循环参与的比较次数在逐级减少。
减x是因为,x=0的时候遍历所有元素,x=1的时候,最后一个就不用遍历了。目的:让每一次比较的元素减少。
length是5,所以y取得最大值是4,arr[4]>arr[5],没有5角标的元素,所以没有必要再取到5,所以再减1。目的:避免角标越界。
*/
for(int y=0;y<arr.length-x-1;++y){
if(arr[y]>arr[y+1]){
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}
public static void main(String[] args){
int[] arr ={5,1,6,4,2,8,9};
//排序前打印:
printArray(arr);
//排序:
BubbleSort(arr);
//排序后打印:
printArray(arr);
}
public static void printArray(int[] arr)
{
System.out.print("{");
for(int x=0;x<arr.length;x++)
{
if(x!=arr.length-1)
System.out.print(arr[x]+", ");
else
System.out.print(arr[x]+"}");
}
System.out.println();
}
}
Java--冒泡排序(BubbleSort)
最新推荐文章于 2022-04-20 10:32:45 发布