排序算法之选择排序 |Java 刷题打卡

87 阅读1分钟

本文正在参加「Java主题月 - Java 刷题打卡」,详情查看 活动链接

1、算法思想

将待排序序列分为两部分,一部分为有序序列,另一部分为无序序列。第一趟:从 a[0]a[n-1] 中找到最小的数 a[i],然后将 a[i]a[0] 交换,第二趟:从 a[1]a[n-1] 中找到最小的数 a[j],然后将 a[j]a[1] 交换,第三趟:从 a[2]a[n-1]中找到最小的数 a[k],然后将 a[k]a[2] 交换 ……

2、实例分析

{13,15,37,89,60,39,12,109,56,72}

第一趟 :12 {15,37,89,60,39,13,109,56,72}

第二趟:12 ,13 {37,89,60,39,15,109,56,72}

第三趟:12 ,13 ,15 {89,60,39,37,109,56,72}

……

3、算法代码

/**
 * 选择排序
 * @author xcbeyond
 *
 */
public class SelectSort {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a[] ={13,15,37,89,60,39,12,109,56,72} ;
		int i;
		int j;
		
		for(i = 0;i<a.length;i++)
			System.out.print(a[i]+"  ");
		System.out.println();
		
		for(i = 0;i<a.length;i++){
			int min = a[i];
			for(j = i+1;j<a.length;j++){
				if(min>a[j]){
					int temp;
					temp = min;
					min = a[j];
					a[j] = temp;
				}
			}
			a[i] = min;
		}
		
		for(i = 0;i<a.length;i++)
			System.out.print(a[i]+"  ");
	}

}