The code below sorts a poset of ints from user input based on divisibility. it i
ID: 3601712 • Letter: T
Question
The code below sorts a poset of ints from user input based on divisibility. it is also supposed to print the minimal and maximal elements of the poset but i am not sure how to find them. Any help would be appreciated!
package selectionsort;
import java.util.Scanner;
/**
*
* @author jharr149
*/
public class SelectionSort {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter number of positive integers:");
int total = scan.nextInt();
System.out.println("Now enter " + total + " positive integers");
int [] arr = new int[total];
for (int i = 0; i < arr.length; i++) {
int input = scan.nextInt();
if(input < 0){
System.out.println("That is not a positive integer, try again.");
i--;
}
else
arr[i] = input;
}
System.out.println("Your array before sort:");
printArr(arr);
System.out.println("");
sortArr(arr);
System.out.println("After sort:");
printArr(arr);
min(arr);
max(arr);
}
public static void sortArr(int[] arr){
int min;
int temp;
for(int i=0; i < arr.length; i++){
min = i;
for(int j = min + 1; j<arr.length; j++){
if(arr[min] / arr[j] >= 1){
min = j;
}
}
temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
}
}
public static void min(int[] arr){
int min;
int temp;
boolean minimal;
for(int i=0; i < arr.length; i++){
minimal = true;
min = arr[i];
for(int j = min + 1; j<arr.length; j++){
temp = j;
if(min / temp >= 1){
minimal = false;
}
}
if(minimal)
{
System.out.println(min);
}
}
}
public static void max(int[] arr){
}
public static void printArr(int [] arr){
for(int i = 0; i < arr.length; i++){
System.out.print(arr[i] + " ");
}
}
}
Explanation / Answer
import java.util.Scanner;
/**
*
* @author jharr149
*/
public class SelectionSort2 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter number of positive integers:");
int total = scan.nextInt();
System.out.println("Now enter " + total + " positive integers");
int [] arr = new int[total];
for (int i = 0; i < arr.length; i++) {
int input = scan.nextInt();
if(input < 0){
System.out.println("That is not a positive integer, try again.");
i--;
}
else
arr[i] = input;
}
System.out.println("Your array before sort:");
printArr(arr);
System.out.println("");
sortArr(arr);
System.out.println("After sort:");
printArr(arr);
min(arr);
max(arr);
}
public static void sortArr(int[] arr){
int min;
int temp;
for(int i=0; i < arr.length; i++){
min = i;
for(int j = min + 1; j<arr.length; j++){
if(arr[min] / arr[j] >= 1){
min = j;
}
}
temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
}
}
public static void min(int[] arr){
int min = arr[0];
for(int i=1; i < arr.length; i++){
if(min / arr[i] > 1){
min = arr[i];
}
}
System.out.println(min);
}
public static void max(int[] arr){
int max = arr[0];
for(int i=1; i < arr.length; i++){
if(max / arr[i] < 1){
max = arr[i];
}
}
System.out.println(max);
}
public static void printArr(int [] arr){
for(int i = 0; i < arr.length; i++){
System.out.print(arr[i] + " ");
}
}
}