在本教程中,我们将为选择排序编写一个 Java 程序。
选择排序算法如何工作?
选择排序算法的工作原理是将原始数组分成两个子数组:排序子数组和未排序子数组,最初排序的子数组为空。该算法通过从未排序的子数组中重复查找最小元素并将其替换为数组的第一个元素来工作,从而使该数组的一部分成为已排序的子数组。这种情况反复发生,直到整个数组被排序。
Java 程序:在数组上执行选择排序
在下面的示例中,我们定义了一个实现选择排序算法的方法selectionSort()
。它从数组中找到最小元素,并将其与数组的第一个元素交换。
我们创建了另一种方法printArr()
来显示数组的元素。我们在排序之前和之后调用此方法,以在选择排序之前和之后显示数组元素。
class JavaExample
{
void selectionSort(int arr[])
{
int len = arr.length;
for (int i = 0; i < len-1; i++)
{
// Finding the minimum element in the unsorted part of array
int min = i;
for (int j = i+1; j < len; j++)
if (arr[j] < arr[min])
min = j;
/* Swapping the found minimum element with the first
* element of the sorted subarray using temp variable
*/
int temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
}
}
// Displays the array elements
void printArr(int arr[])
{
for (int i=0; i<arr.length; i++)
System.out.print(arr[i]+" ");
System.out.println();
}
public static void main(String args[])
{
JavaExample obj = new JavaExample();
int numarr[] = {101,5,18,11,80, 67};
System.out.print("Original array: ");
obj.printArr(numarr);
//calling method for selection sorting
obj.selectionSort(numarr);
System.out.print("Sorted array: ");
obj.printArr(numarr);
}
}
输出: