您的位置:首页 > 理论基础 > 数据结构算法

数据结构(排序)--选择排序

2016-10-11 18:48 141 查看
数据结构–选择排序

代码实现:

package cn.hncu;

import java.util.Scanner;
//选择排序
//优化版选择排序-----从时间复杂度和空间复杂度来进行优化(主要从交换的次数进行控制,做到只交换一次就能找到最小(大)的数)

public class chooseSort2 {
public static void main(String[] args) {
//
Scanner sc = new Scanner(System.in);
int[] arr = new int[8]; // 给数组中的8个数字进行排序
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt(); // 依次给数组中的每个元素进行赋值操作
}

// 下面进行排序操作
//注意一下两者(外层循环和内层)的比较趟数
for (int i = 0; i < arr.length - 1; i++) { // 进行排序的趟数
int k = i;
for (int j = i + 1; j < arr.length; j++) { // 每趟排序进行的比较次数
if (arr[k] > arr[j]) {
// 交换两个数的位置
k = j;
//swap(arr, i, j); // 每次把最小的那个数拿到前面,依次排序过去----优化版把这里优化了
}
}
swap(arr,i,k);    //只进行一次交换
}
// 增强for循环输出排序后的数组
for (int x : arr) {
System.out.print(x + " ");
}
}

private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息