In: Computer Science
/**
* This program will sort an n by n array by the first value in each row.
* Selection sort algorithm is modified to do the sorting.
* For example:
* <p/>
* If the original array is:
* 1 2 3 4 5
* 3 4 5 1 2
* 5 2 3 4 1
* 2 3 1 4 5
* 4 2 3 1 5
* <p/>
* The array after sorting is:
* 1 2 3 4 5
* 2 3 1 4 5
* 3 4 5 1 2
* 4 2 3 1 5
* 5 2 3 4 1
*
* @author YOUR NAME
* @version 09/29/2020
*/
public class ArraySortByFirst
{
private int[][] dataToSort;
public ArraySortByFirst(int[]... data)
{
this.dataToSort = data;
}
/**
* Task: Sorts an array of integers by the first value of each row. After
* sorting, the first column of the array is in ascending order.
*/
public void sortByFirstColumn()
{
//TODO Project2
// I am similar to selection sort");
}
/**
* Task: Finds the row of the smallest value in the first column of this.dataToSort array.
*
* @param first the index of the first array row to consider
* @param last the index of the last array row to consider
* @return the index of the row with the smallest element in the first column among
* this.dataToSort[first], this.dataToSort[first + 1], . . . , this.dataToSort[last]
*/
private int getIndexOfSmallest(int first, int last)
{
int min = this.dataToSort[first][0];
int indexOfMin = first;
//TODO Project2
return indexOfMin;
}
/**
* Task: Swaps the rows this.dataToSort[i] and this.dataToSort[j].
*
* @param i row to swap
* @param j row to swap
*/
private void swap(int i, int j)
{
//TODO Project2
}
/**
* Task: displays the content of this.dataToSort row by row
*/
public void display()
{
//TODO Project2 - implement first;
}
public static void main(String args[])
{
int array[][] = {{1, 2, 3, 4, 5}, {3, 4, 5, 1, 2}, {5, 2, 3, 4, 1}, {2, 3, 1, 4, 5}, {4, 2, 3, 1, 5}};
ArraySortByFirst sortArray = new ArraySortByFirst(array);
System.out.println("The original array is ");
sortArray.display();
System.out.println();
sortArray.sortByFirstColumn();
System.out.println("The array after sorting is ");
sortArray.display();
System.out.println();
} // end main
} // end ArraySortByFirst
code:
public class ArraySortByFirst {
private int[ ] [ ] dataToSort;
public ArraySortByFirst(int[]....data)
{
this.dataToSort = data;
}
public void sortByFirstColumn()
{
for(int i=0;; i<dataToSort.length; i++)
{
int leastElementRow=getIndexOfSmallest(i,dataToSort.length);
swap(i,leastElementRow);
}
}
private int getIndexOfSmallest(int first,int last)
{
int min=this.dataToSort[first][0];
int indexOfMin= first;
for(int i=first;i<last;i++){
if(dataToSort[i][0]<min){
min=dataToSort[i][0];
indexOfMin=i;
}
return indexOfMin;
}
private void swap(int i,int j)
{
int tempRow[]=dataToSort[i];
dataToSort[i]=dataToSort[j];
dataToSort[j]=tempRow;
}
public void display()
{
for(int i=0;i<dataToSort.length;i++){
for(int j=0;j<dataToSort.length;j++){
System.out.print(dataToSort[i][j]+" ");
}
System.out.println();
}
}
public static void main(String[] args){
int array[ ] [ ] ={ {1,2,3,4,5} , {3,4,5,1,2},{5,2,3,4,1} , {2,3,1,4,5},{4,2,3,1,5}};
ArraySortByFirst sortArray= new ArraySortByFirst(array);
System.out.println("The original array is ") ;
sortArray.display();
System.out.println();
sortArray.sortByFirstColumn();
System.out.println("The array after Sorting is ");
sortArray.display();
System.out.println();
}
}
}
screenshot of code :



screenshot of output: