首先,我们需要定义一个SortMethod接口,该接口中包含一个sort方法:interface SortMethod { void sort(int[] numbers);}
接下来,我们需要定义两个类InsertSort和BubbleSort来实现SortMethod接口,并在这两个类中分别实现sort方法。
对于直接插入排序的实现,代码如下:class InsertSort implements SortMethod { public void sort(int[] numbers) { for (int i = 1; i < numbers.length; i++) { int key = numbers[i]; int j = i - 1; while (j >= 0 && numbers[j] > key) { numbers[j + 1] = numbers[j]; j--; } numbers[j + 1] = key; } }}
对于冒泡排序的实现,代码如下:class BubbleSort implements SortMethod { public void sort(int[] numbers) { for (int i = 0; i < numbers.length - 1; i++) { for (int j = 0; j < numbers.length - 1 - i; j++) { if (numbers[j] > numbers[j + 1]) { int temp = numbers[j]; numbers[j] = numbers[j + 1]; numbers[j + 1] = temp; } } } }}
接下来,在main方法中创建一个长度为8的数组,并用InsertSort和BubbleSort的对象分别调用newsort方法进行排序:public class Main { public static void main(String[] args) { int[] ns = new int[]{5, 2, 7, 1, 8, 4, 3, 6}; InsertSort is = new InsertSort(); SortedInts.newsort(ns, is); BubbleSort bs = new BubbleSort(); SortedInts.newsort(ns, bs); }}
这样就完成了题目要求的代码实现。请注意,在定义类和接口时,只有Main类可以定义为public,并且要将其放在最前面。其他类和接口不能定义为public。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |