选择排序

来源:互联网 发布:手机淘宝店怎么上下架 编辑:程序博客网 时间:2024/06/06 11:44

  选择排序也是比较简单的一种排序方法,原理也比较容易理解,它与冒泡排序的比较次数相同,但选择排序的交换次数少于冒泡排序。冒泡排序是在每次比较之后,若比较的两个元素顺序与待排序顺序相反,则要进行交换,而选择排序在每次遍历过程中只记录下来最小的一个元素的下标,待全部比较结束之后,将最小的元素与未排序的那部分序列的最前面一个元素交换,这样就降低了交换的次数,提高了排序效率。

public class SelectSortTest {public static void selectSort(int[] array) {for (int i = 0; i < array.length; i++) {int minIndex = i;//寻找第i趟最小元素下标for (int j = i + 1; j < array.length; j++) {if (array[minIndex] > array[j]) {minIndex = j;}}//如果最小元素不是array[i](即minIndex值发生了变化),则把最小元素和array[i]互换位置if (i != minIndex) {int temp = array[i];array[i] = array[minIndex];array[minIndex] = temp;//打印每趟排序后的结果for (int k = 0; k < array.length; k++) {System.out.print(array[k] + " ");  }System.out.println();}}System.out.print("排序后的结果为:");for (int k = 0; k < array.length; k++) {System.out.print(array[k] + " ");}}public static void main(String[] args) {int[] array = {4, 5, 8, 1, 6, 3, 7};selectSort(array);}}


0 0
原创粉丝点击