选择排序

package com;

//选择排序
public class Selectsort {
	/*
	 * 思想:
	 * 1.找一个基准元素作为最小值(通常选第一个),把该元素的数组下标给一个变量min
	 * 2.依次和其它元素比较,如果有比它还小的元素,那么就把比它小的元素的数组下标给min
	 * 3.然后把min和初始的基准元素下标比较,如果发现不一样,那么就说明其它元素有比基准元素小的,把比基准元素小的元素和基准元素交换
	*/
	
	public static void swap(int a[],int i,int index) {
		int t=a[i];
		a[i]=a[index];
		a[index]=t;
	}
	

	public  static void sort(int a[],int size) {
		for(int i=0;i<size;i++) {
			int index=i;
			for(int j=i+1;j<size;j++) {
				if(a[index]>a[j]) {
					index=j;
				}
			}
			
			if(i!=index) {//有比基准元素小的元素
				swap(a,i,index);	
			}
			
		}
	}
	
	/*
	 * 打印排序后的元素
	*/
	public static void print(int a[]) {
		
		for(int i=0;i<a.length;i++) {
			
			System.out.println("元素的值依次是:"+a[i]);
		}
	}
	
	

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		int a[]= {12,23,24,21,32,45,34,25,15,2,13,21,67};
		Selectsort.sort(a,a.length-1);
		Selectsort.print(a);

	}


}

猜你喜欢

转载自blog.csdn.net/weixin_37817685/article/details/79992735