Java 随机整数与排序
因此,我参加了AP计算机科学(在线课程),我们的老师给我们布置了以下作业: 创建名为SelectionSort的公共类,该类具有以下特征: 包括一个私有实例变量,该变量是一个100000整数的数组 包含一个私有实例变量,该变量存储排序期间运行的语句数 包含一个私有实例变量,该变量存储搜索期间运行的语句数 创建一个名为“sort”的公共mutator方法,该方法将int数组作为参数,如果数组超过100000个元素,则引发异常,否则使用选择排序算法将数组存储为排序列表,并计算排序列表所需执行的语句数 创建一个名为“linearSearch”的公共查询方法,该方法将以int为值,使用线性搜索算法进行搜索,并返回一个字符串,说明“在执行[count]语句后未找到整数[int]”或“在执行[count]语句后未在[index]位置找到整数[int]” 创建一个名为“binarySearch”的公共查询方法,该方法与linearSearch的功能相同,但实现了二进制搜索算法 创建一个名为“toString”的公共访问器方法,该方法将以字符串形式返回排序列表,每个元素之间带有换行符(\n) 创建一个名为“getSortCount”的公共访问器方法,该方法将返回为对列表进行排序而执行的语句数 创建第二个名为BubbleSort或InsertionSort的公共类(由您选择),除了实现冒泡排序或插入排序算法之外,其他特性都相同 创建具有以下特征的主tester类: 提示用户输入一个介于1和100000之间的数字以设置数组的大小 提示用户输入介于1和要搜索的数组大小之间的整数搜索值 生成值介于1和数组大小之间的随机数数组 将随机数列表打印到屏幕上 创建SelectionSort对象和BubbleSort或InsertionSort对象,并将随机数组传递给它们进行排序 使用对象“getSortCount”访问器方法,将两条语句打印到屏幕上,显示为每种排序类型执行的语句数,行为“为[Selection/Bubble/Insertion]排序执行[count]语句” 使用linearSearch和binarySearch方法在每个对象中搜索搜索值 将4条语句打印到终端,对于两个对象中的每一个对象,每种类型的搜索都有两条语句,内容如下:“[Selection/Bubble/Insertion]排序对象中[search value]的[Linear/Binary]搜索结果:[由linearSearch或binarySearch方法返回的结果]” 您将希望使用toString方法作为故障排除工具,以缓慢、渐进的方式构建排序类和主tester类,并从非常小的数组(大约10个元素)开始。一旦您确信您的程序工作正常,请尝试逐渐增大数组,并记录打印到终端的结果 到目前为止,我参加了SelectionSort班。我一直停留在“创建一个名为“toString”的公共访问器方法”上,该方法将以字符串形式返回排序列表,每个元素之间有一个换行符(\n)。 创建名为“getSortCount”的公共访问器方法,该方法将返回为对列表进行排序而执行的语句数。” 这是我目前的代码:Java 随机整数与排序,java,arrays,sorting,Java,Arrays,Sorting,因此,我参加了AP计算机科学(在线课程),我们的老师给我们布置了以下作业: 创建名为SelectionSort的公共类,该类具有以下特征: 包括一个私有实例变量,该变量是一个100000整数的数组 包含一个私有实例变量,该变量存储排序期间运行的语句数 包含一个私有实例变量,该变量存储搜索期间运行的语句数 创建一个名为“sort”的公共mutator方法,该方法将int数组作为参数,如果数组超过100000个元素,则引发异常,否则使用选择排序算法将数组存储为排序列表,并计算排序列表所需执行的语句数
import java.util.Scanner;
public class SelectionSort{
private int stateSort;
private int stateSearch;
int fin[] = new int [100000];
int smallerNumber;
private int j;
private int i;
public boolean Sort(int fin[]){
if (! (0 <= fin[100000] || fin[100000]>100000)){
return false;
}
else{
for (int i = 0; i < fin.length - 1; i++) {
int index = i;
for (int j = i + 1; j < fin.length; j++){
if (fin[j] < fin[index])
index = j;
int smallerNumber = fin[index];
fin[index] = fin[i];
fin[i] = smallerNumber;
}
}
}
return true;
}
public int getState(){
return j;
}
int linearSearch (int[] a, int stateSearch){
for (int i = 0; i <a.length; i++){
if (a[i] < stateSearch || a[i] > stateSearch){
System.out.println("The integer" + stateSearch + "was not found after" + a.length +"statements.");
}
if(a[i] == stateSearch){
System.out.println("The integer" + stateSearch + "was found after" + a.length + "statements.");
return i;
}
}
return -1;
}
int binarySearch (int[] a, int stateSearch){
int left = 0;
int right = a.length - 1;
while (left <= right){
int midpoint = (left + right)/2;
if (a[midpoint] == stateSearch){
System.out.println("The integer" + stateSearch + "was found after" + a.length + "statements.");
return midpoint;
}
else if (a[midpoint] < stateSearch){
left = midpoint + 1;
}
else{
right = midpoint - 1;
System.out.println("The integer" + stateSearch + "was not found after" + a.length +"statements.");
}
}
return -1;
}
public String toString(){
return stateSearch;
}
}
import java.util.Scanner;
公共类选择排序{
私有int stateSort;
私人搜索;
国际金融机构[]=新国际金融机构[100000];
int smallerNumber;
私人int j;
私人互联网i;
公共布尔排序(int-fin[]){
如果(!(0 100000)){
返回false;
}
否则{
对于(int i=0;i while(左图)“创建一个名为“toString”的公共访问器方法,该方法将以字符串形式返回排序后的列表,每个元素之间有一个换行符(\n)”非常简单。你对术语感到困惑吗?不,我对返回语句的内容感到困惑。他想让我返回一个字符串,但我在上面的代码中看不到任何可以返回的字符串。看看你的代码,你似乎对你正在做的事情有很好的理解。有函数、变量、循环、strin然后你说“他想让我返回一个字符串,但我在上面的代码中看不到任何可以返回的字符串”。这让我想知道你是否编写了粘贴的代码。是吗?但是,为了部分地回答你的问题,我要说:在实现了一个排序算法(比如bubble)之后,你的toString方法很简单。返回array.toString(bubbleSortMyIntegerArray());请向我解释你的I