简单选择排序是选择排序中最简单的排序方法,其基本思想是:第i趟排序在待排序序列r[i]~r[n](1<=i<=n-1)中选取关键码最小的记录,并和第i个记录交换作为有序序列的第i个记录。具体做法如下:
设有序列[49,27,65,97,76,13,38]([ ]中为无序区)首先挑出无序区中最小的数值13与原序列第一个记录49交换得到新序列13[27,65,97,76,13,38]。然后挑选无序区中最小的记录27作为有序去中第二个记录,形成新序列13,27[65,97,76,49,38]。接下来挑选无序区中最小的记录38与无序区中第一个记录交换形成新序列13,27,38[97,76,49,65]。循环进行上述操作直到整个序列有序。
java程序如下:
package sort1;
public class SelectSort {
public static void selectSort(int a[]){
int n=a.length;
int temp;
for(int i=0;i<n;i++){
int min=a[i],k=i;
for(int j=i+1;j<n;j++){
if(a[j]<min){
min=a[j];
k=j;
}
}
temp=a[i];
a[i]=a[k];
a[k]=temp;
System.out.print("第"+(i+1)+"次排序后的结果是:");
for(int m=0;m<=i;m++){
System.out.print(a[m]+" ");
}
System.out.print("[");
for(int l=i+1;l<n;l++){
System.out.print(a[l]+" ");
}
System.out.println("]");
}
}
public static void main(String[] args) {
int b[]={49,27,65,97,76,13,38};
selectSort(b);
System.out.print("最终的排序结果为:");
for(int l=0;l<b.length;l++){
System.out.print(b[l]+" ");
}
}
}
运行结果如图: