选择排序
选择排序的思想方法:快速排序的思想非常直接,正如名字一样,将要排序的数据元素选出最小的,将它和数据元素的首位交换位置。再次从剩下的数据元素中 找到最小的元素,放到第二个位置上……以此类推,直到将整个数据元素排序。
代码实现
public class selectSort {
private int arr[];
private int length;
public selectSort(int a){
arr=new int[a];
length=0;
}
//显示
public void show(){
for (int s=0;s<length;s++){
System.out.print(arr[s]+" ");
}
System.out.println(" ");
}
//插入
public void insert(int i){
arr[length]=i;
length++;
}
//排序
public void sort(){
int i,j,min;
for(i=0;i<length-1;i++){ //外层循环,i表示当前最小值的下标
min=i; //假设第一位为最小
for (j=i+1;j<length;j++){
if (arr[j]<arr[min]){
min=j; //从i+1开始,找出剩余的lenth-i的元素中最小的值赋给min
}
}
swap(min,i); //将min换到i的位置上
}
}
//交换
public void swap(int m,int n){
int temp=arr[m];
arr[m]=arr[n];
arr[n]=temp;
}
}
测试类
public class selectSortApp {
public static void main(String args[]){
selectSort arr;
arr=new selectSort(10);
arr.insert(5);
arr.insert(2);
arr.insert(1);
arr.insert(8);
arr.insert(3);
arr.insert(4);
System.out.print("排序前数组为:");
arr.show();
System.out.print("排序后数组为:");
arr.sort();
arr.show();
}
}
运行结果: