写一个工具类,类中定义静态方法,实现数组的升序排序(选择和冒泡分别写一个类)

Java学习到了静态方法,第一次发文章,望大家多多指点  (*^_^*)

要解答此题,首先,我们要了解到题目里所要用到的知识内容

1、静态方法:

先于对象的方法,不依赖与对象,可以通过类名直接调用。

public class Person{
      public static void fun(){
        System.out.println("fun");
      }
}
public class DemoPerson{
      public static void main(String[]args){
        Person.fun();
      }
}

2、冒泡排序原理:

依次比较两个相邻的元素,将值较大的元素交换至右端。

可以用双重循环语句(外层控制循环多少趟,内层控制每一趟的循环次数)即:

for(int i=1;i<arr.length;i++){               
   for(int j=1;j<arr.length-i;j++){
      if(){
         //交换位置
      }
   }
}

3、选择排序原理:

每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列中,直到全部记录排序完毕。

即:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。

4、数组的定义及赋值

5、数组参数的传递

完成代码如下:

class Bubble {    // Bubble sort冒泡排序

	public static void bubble(int[] arr) {
		int i, j, temp;
		for (i = 0; i < arr.length - 1; i++) {     // 外层循环控制排序趟数
			for (j = 0; j < arr.length - 1; j++) { 
                            // 内层循环控制每一趟排序多少次
				if (arr[j] > arr[j + 1]) {
					temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}
			}
		}
		System.out.println("排序后的数组为:");
		for (int num : arr) {
			System.out.print(num + " ");
		}
		System.out.println();
	}
}

class Selection {     // Selection sorting选择排序
	public static void selection(int[] arr) {
		for (int i = 0; i < arr.length - 1; i++) {    // 做第i趟排序
			int k = i;
			for (int j = k + 1; j < arr.length; j++) {    // 选最小的记录
				if (arr[j] < arr[k]) {
					k = j;      // 记下目前找到的最小值所在的位置
				}
			}
			// 在内层循环结束,也就是找到本轮循环的最小的数以后,再进行交换
			if (i != k) { // 交换a[i]和a[k]
				int temp = arr[i];
				arr[i] = arr[k];
				arr[k] = temp;
			}
		}
		System.out.println("排序后的数组为:");
		for (int num : arr) {
			System.out.print(num + " ");
		}
	}
}

public class Tools {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.println("冒泡排序数组为:");
		int[] n = new int[4];
		for (int i = 0; i < 4; i++) {
			n[i] = scanner.nextInt();
		}
		Bubble.bubble(n);
		System.out.println("选择排序数组为:");
		int[] m = new int[5];
		for (int i = 0; i < 5; i++) {
			m[i] = scanner.nextInt();
		}
		Selection.selection(m);
		scanner.close();
	}

}

输出结果为:

猜你喜欢

转载自blog.csdn.net/Ww1554487900/article/details/81192642
今日推荐