面试题练习(10)——【冒泡排序】编写冒泡排序,要求输入10个整数,输出结果;排序[A,a,b,f,m,k]排序后的结果为[a,A,b,f,k,m].

一例子:

用Java语言写出(在main()方法里写):

Java实现类似C语言的标准scanf输入【scanf(“%d”,&data[i]);对应Java的代码是Scanner()】

JAVA学习笔记-数组的三种初始化方式【数组的初始化,Or Java 输入 类似c的scanf

Java中数组的定义及初始化

Java的scanf【扩展:EOF

		  int data[]=new int[10];
		  int i=0;int temp=0;
        for(i=0;i<MAX;i++){
	    	System.out.println("Please input integer["+(i+1)+"]");
	    	Scanner scan=new Scanner(System.in);
	    	System.out.print("输入数字:");    
	        temp=scan.nextInt();
	        System.out.println(temp);
	        data[i]=temp;
        }
	    System.out.println("Sorting:");
	    for(i=0;i<MAX;i++){
	    	System.out.println("--------------["+data[i]+"]-------------");
	    } 
	    int j=0;
	    for(i=MAX-1;i>=0;i--){
		    for(j=0;j<i;j++){
			    if(data[j]>data[j+1]){
				    int n = data[j];
				    data[j] = data[j+1];
				    data[j+1] = n; 
			    }
		    } 
	    }
	    System.out.println("Sorted:");
	    for(i=0;i<MAX;i++){
	    	System.out.println("--------------["+data[i]+"]-------------");
	    } 
	  }

 打印结果:

Please input integer[1]
输入数字:11
11
Please input integer[2]
输入数字:87
87
Please input integer[3]
输入数字:43
43
Please input integer[4]
输入数字:11
11
Please input integer[5]
输入数字:56
56
Please input integer[6]
输入数字:-10
-10
Please input integer[7]
输入数字:65
65
Please input integer[8]
输入数字:12
12
Please input integer[9]
输入数字:100
100
Please input integer[10]
输入数字:23
23
Sorting:
--------------[11]-------------
--------------[87]-------------
--------------[43]-------------
--------------[11]-------------
--------------[56]-------------
--------------[-10]-------------
--------------[65]-------------
--------------[12]-------------
--------------[100]-------------
--------------[23]-------------
Sorted:
--------------[-10]-------------
--------------[11]-------------
--------------[11]-------------
--------------[12]-------------
--------------[23]-------------
--------------[43]-------------
--------------[56]-------------
--------------[65]-------------
--------------[87]-------------
--------------[100]-------------

注:排序规则:数字从小到大 

二例子:

答案的打印结果: 

代码:(sort静态方法在main方法里调用,把data的值改了下)

	private char[] data={'A','a','b','F','m','k'};
	public static void sort(){
		for(int i=data.length-1;i>=0;i--){
			for(int j=0;j<i;j++){
				if(data[j]>data[j+1]){
					System.out.println("--------1111----"+data[j]+"***"+data[j+1]);
					if(data[j]-data[j+1]!=32){
						char n=data[j];
						data[j]=data[j+1];
						data[j+1]=n;
						System.out.println("--------2222----"+data[j]+"***"+data[j+1]);
					}
				}else{
					System.out.println("--------3333----"+data[j]+"***"+data[j+1]);
					if(data[j+1]-data[j]==32){
						char n=data[j];
						data[j]=data[j+1];
						data[j+1]=n;
						System.out.println("--------4444----"+data[j]+"***"+data[j+1]);
					}
				}
			}
		}
		for(int i=0;i<data.length;i++){
		      System.out.print(data[i] + " ");
		}
	}
	public static void main(String[] args) {
		
		sort();
        }

打印结果:

--------3333----A***a
--------4444----a***A
--------3333----A***b
--------1111----b***F
--------2222----F***b
--------3333----b***m
--------1111----m***k
--------2222----k***m
--------1111----a***A
--------3333----A***F
--------3333----F***b
--------3333----b***k
--------1111----a***A
--------3333----A***F
--------3333----F***b
--------1111----a***A
--------3333----A***F
--------1111----a***A
a A F b k m 

注:排序规则:排序按ASCII值从小到大,如:a b c d;若值里有小写字母对应的大写,那么先“小写字母”再“大写字母”,如:a A 。

上一篇:
下一篇:

发表评论

邮箱地址不会被公开。 必填项已用*标注

昵称 *