`
shishuoxx
  • 浏览: 912 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

一个小冒泡程序

阅读更多
记的以前去面试,笔试题叫写一个冒泡程序,不懂得什么叫冒泡程序,乱忽悠给他打印出了 .ooooo0000000 人家崩溃了,我也崩溃了。 回来研究了一下 自己写一个
package paixu;

import java.util.Random;

public class Maopao {

	public int[] ran() {                           //产生一个随机数 数组的类保证里面有复数
		Random random = new Random();
		int[] r = new int[10];
		for (int i = 0; i < 10; i++) {
			r[i] = random.nextInt(500) - random.nextInt(500);
		}
		return r;
	}

	public void result(int[] reslut) {				//打印结果的类
		for (int i : reslut) {
			System.out.print(i + " ");
		}
	}

	public void Replacement(int x, int y, int[] array) {		//将数组转换位置
		int temp = array[x];
		array[x] = array[y];
		array[y] = temp;

	}

	public void mao(int[] array, String str) {

		if (str.equals("正序冒泡")) {
			for (int i = 1; i < array.length; i++) {

				for (int k = 0; k < array.length - i; k++) { //执行9次 循环  i不同
					if (array[k] > array[k + 1]) {		//当数组的 头一个数比下一个数大的时候 
						Replacement(k, k + 1, array);	// 将他们的位置改变 调用 replacement类  形成冒泡排序
					}
				}
			}
		}
		else if (str.equals("倒序冒泡")){
			for(int i=1;i<array.length;i++){   
				for(int k =0;k<array.length-i;k++){ 	//执行9次 循环  i不同
					if(array[k]<array[k+1]){			//当数组的 头一个数比下一个数小的时候 
						Replacement(k, k+1, array);		//改变顺序 先从正数开始排
					}
				}
			}
		}

	}

	public static void main(String[] args) {
		Maopao m = new Maopao();
		int [] r =	m.ran();
		m.result(r);
		System.out.println( " " );
		m.mao(r, "正序冒泡");
		System.out.println( "正序如下");
		m.result(r);
		
		m.mao(r, "倒序冒泡");
		
		System.out.println(" ");
		System.out.println("倒序如下");
		m.result(r);
	}

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics