java冒泡的问题

来源:百度知道 编辑:UC知道 时间:2024/06/16 15:38:36
package zcguanli.Control;

public class Untitled3 {
public static void main(String args[]){
int nums[]={99,-10,100123,18,-978,5623,463,-9,287,49};
int a,b,t;

System.out.print("Original array is:");
for(int i=0;i<10;i++)
System.out.print(" "+nums[i]);
System.out.println();
for(a=1;a<10;a++)
for(b=10-1;b>=a;b--){ //B的初始值=10,代表循环10次,b>=a是也是循环10次,b--这句完全是为了循环次数对吗
if(nums[b-1]>nums[b]){ 这句是每一次循环完的对比大小?
t=nums[b-1]; //存放大一点的值?
nums[b-1]=nums[b]; 放哪了?
nums[b]=t; T能完全的存放数组?还是每一次对比一次就放一次,那放完了之后T的值再存放的时候就刷新成新值了?
}
}
System.out.print("Sroted array is:");
for(int i=0;i<10;i++)
System.out.print(" "+nums[i]);
System.out.println();
}
}

大部分都理解,不理解的都注释了,希望能够耐心解答..
我再问一句for(b=10-1)这是循环9次?

那a和b就是存了那10个数的临时变量对吗?每循环一次变一次,知道循环排完

两个For,就是为了两两比较吗,外层和内层的有什么关系,那For里面的单纯的A,就已经是数组

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package testgraphics;

public class Untitled3 {

public static void main(String args[]) {
int nums[] = {99, -10, 100123, 18, -978, 5623, 463, -9, 287, 49};
int a, b, t;

System.out.print("Original array is:");
for (int i = 0; i < nums.length; i++) {//对于数组循环,很少直接写数值
System.out.print(" " + nums[i]);
}
System.out.println();
for (a = 1; a < nums.length; a++) {
for (b = nums.length - 1; b >= a; b--) { //B的初始值=nums.length - 1,整句话合在一起才能决定循环次数,b--表示循环变量每次循环时都自动减一

if (nums[b - 1] > nums[b]) {
//这句是每一次循环完的对比大小? 循环过程中首先进行大小比较!
t = nums[b - 1]; //存放大一点的值? 对的!这是交换第一步,把较大的值复制一份放到t中,

num