黑马程序员技术交流社区
标题:
数组排序之[选择排序]:不断挑选剩余元素中的最小者
[打印本页]
作者:
James_01
时间:
2016-6-22 00:59
标题:
数组排序之[选择排序]:不断挑选剩余元素中的最小者
/*
* 数组排序之[选择排序]:(本质:不断挑选剩余元素中的最小者)
* 分析:
* 1、定义一个数组
* 2、因为涉及到交换,所以定义一个数组中两个位置上元素交换的方法
* 3、找到数组中最小的元素,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素,那么它就和自己交换)
* 4、在剩下到元素中找到最小的元素,将它与数组中的第二个元素交换位置,
* 5、循环这个过程,直到整个数组排序
*/
public class SimpleIteration {
/**
* @param args
*/
public static void main(String[] args) {
// 定义一个数组
int[] qm = {11,13,7,8,1,3,4,2};
//调用选择排序方法
selectSort(qm);
//遍历打印数组元素
for(int s : qm ) {
System.out.print(s + " ");
}
}
//选择排序
/*找到数组中最小的元素,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素,那么它就和自己交换)
* 在剩下到元素中找到最小的元素,将它与数组中的第二个元素交换位置,
* 循环这个过程*/
public static void selectSort(int[] arr){
for (int i = 0; i < arr.length-1; i++) {
int min = i;
for (int j = i+1; j < arr.length; j++) {
if (arr[j]< arr[min]) {
min = j;
}
}
//每一次找出当时数组最小值的索引后,调用方法交换元素位置
swap(arr, i, min);
}
}
/**
* 因为涉及到交换,所以定义一个数组中两个位置上元素交换的方法
* 交换数组中两个元素的位置
* @param arr
* @param i
* @param j
*/
private static void swap(int[] arr, int i, int j) {
int temp = arr[j];
arr[j] = arr[i];
arr[i] =temp;
}
}
复制代码
作者:
James_01
时间:
2016-6-22 01:00
点招常考题
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2