选择式排序也属于内部排序法,是从欲排序的数据中,按照指定的规则选出某一元素,经过和其他元素的重整,再依据原则交换位置后达到排序的目的。
选择式排序又可以分为两种:
- 选择排序(Selection Sort)
- 堆排序(Heap Sort)
- 选择排序基本思路:
注意: 本例演示中,采用了随机数,获取了执行时间。
import java.util.*;
public class Select_sort {
public static void main(String[] args) {
// TODO Auto-generated method stub
int len = 400000;
int[] arr = new int[len];
for (int i = 0; i < len; i++) {
//让程序随机产生1-10000的数据
//Math.random()随机产生一个0-1的数
int t = (int)Math.random() * 10000;
arr[i] = t;
}
Select select = new Select();
//排序前打印系统时间
Calendar calendar = Calendar.getInstance();
System.out.println("排序前:" + calendar.getTime());
select.sort_select(arr);
//单例模式 必须要进行第二次对象的建立
Calendar calendar1 = Calendar.getInstance();
System.out.println("排序后:" + calendar1.getTime());
select.sort_select(arr);
}
}
class Select
{
public void sort_select(int arr[]) {
int temp = 0;
int k = 0;
for (int i = 0; i < arr.length -1; i++) {
int min = arr[i];//默认第一个数是最小的参数
int min_index = i;//记录下标
for(int j = i + 1;j < arr.length;j ++)
{
if(min > arr[j])
{
min = arr[j];
min_index = j;
}
}
temp = arr[i];
arr[i] = arr[min_index];
arr[min_index] = temp;
}
// for (int i = 0; i < arr.length; i++) {
//
// System.out.println(arr[i]);
// }
}
}