類:Nums 權(quán)限:public
方法:main 權(quán)限:public
參數(shù):nums,i,j,num;
參數(shù)介紹:
nums,數(shù)據(jù)類型 int[] ,用來存儲 int 型的一系列數(shù)組;
i,數(shù)據(jù)類型 int ,作為 for 循環(huán)的循環(huán)變量,存儲排序比較的輪數(shù);
j,數(shù)據(jù)類型 int ,作為 for 循環(huán)的循環(huán)變量,存儲該輪排序比較的次數(shù);
num,數(shù)據(jù)類型 int ,作為兩值互換的第三方變量。
方法功能:
定義一個 int[] 數(shù)組;
設(shè)置一個循環(huán)變量 i ,記錄比較輪數(shù);
設(shè)置一個循環(huán)變量 j ,記錄該輪比較中的比較次數(shù);
用數(shù)組中未排序完成的第一個數(shù)字和后面的其他數(shù)字進(jìn)行比較;
如果未排序完成的第一個數(shù)字比和他比較的數(shù)字小,就交換它們的位置,以保證未排序的第一個數(shù)始終是參與比較過的數(shù)字中最大的;
循環(huán)完成后,用迭代循環(huán)輸出排序結(jié)果。
public class NumsI{
public static void main (String [] arge){
//定義一個 int 的數(shù)具類型數(shù)組 nums,并賦予初始值;
int[] nums = new int[]{12,24,34,14,45,17,65,51,25};
//提示排序方式并用迭代輸出數(shù)組初始狀態(tài);
System.out.println("冒泡排序演示");
System.out.print("初始數(shù)據(jù) ");
for (int num :nums){
System.out.print(num + " ");
}
System.out.println();
//設(shè)置一個循環(huán),用來記錄比較輪數(shù);
for (int i = 0; i < nums.length-1; i++ ){
//設(shè)置一個循環(huán),記錄該輪比較中的比較次數(shù);
for(int j =0;j < nums.length-1-i; j++){
//用 nums[] 數(shù)組中前面的值與它后面的值比較,如果后面的值比它大就執(zhí)行下面代碼塊;
if(nums[j]<nums[j+1]){
//對 nums[] 數(shù)組中的進(jìn)行交換;
int num = nums[j];
nums[j] = nums[j+1];
nums[j+1] = num;
//輸出兩個交換位置的值;
System.out.print(nums[j+1] + "和" + nums[j] + "換位置"+" ");
}else{//如果沒有交換則打印空格,用來保持輸出格式工整;
System.out.print(" ");
}
//用迭代循環(huán)輸出本次排序完成后的結(jié)果;
for (int num :nums){
System.out.print(num + " ");
}
//提示進(jìn)行了一次比較;
System.out.println("進(jìn)行了一次比較" );
}
//提示進(jìn)行了一輪比較;
System.out.println("本輪比較結(jié)束");
}
//提示比較完備并用迭代輸出結(jié)果;
System.out.println("完畢");
for (int num :nums){
System.out.print(num +" ");
}
}
}