您的位置:首页 > 编程语言 > Java开发

[Java]数组排序-选择排序 冒泡排序 插入排序

2014-03-17 20:53 483 查看
1 选择排序
原理:a 将数组中的每个元素,与第一个元素比较
如果这个元素小于第一个元素, 就将这个
两个元素交换.
b 每轮使用a的规则, 可以选择出一个最小元素
放到第一个位置.
c 经过n-1轮比较完成排序
简单说: 每轮选择最小的放到前面.




2 冒泡排序
原理: a 逐一比较数组中相邻的两个元素, 如果后面
的数字小于前面的数字, 就交换先后元素.
b 经过一个轮次的比较, 一定有一个最大的排
在最后的位置.
c 每次比较剩下的元素, 经过n-1次比较, 可以
实现排序
简单说: 比较交换相邻元素,每次最大的漂移到最后



3 插入排序
原理: a 将数组分为两部分, 将后部分的第一张逐一
与前部分每一张比较, 如果当前元素小, 就
一点被比较元素.
b 找到合理位置插入.



package com.dezai;

import java.util.Arrays;

public class VAlign {

	public static void main(String[] args) {
		int[] a=new int[]{8,3,5,1,4,2,7};	
		String s=Arrays.toString(selectionSort(a));
		System.out.println("选择排序:"+s);
		
		String s1=Arrays.toString(bubolSort(a));
		System.out.println("冒泡排序: "+s1);
		
		String s2=Arrays.toString(InserSort(a));
		System.out.println("插入排序: "+s2);
		
	}
	/*
	 * 选择排序
	 */
	public static int[] selectionSort(int[] ary){
		
		for(int i=0;i<ary.length;i++){
			for(int j=i+1;j<ary.length;j++){
				if(ary[j]<ary[i]){
					int temp=ary[i];
					ary[i]=ary[j];
					ary[j]=temp;
				}
			}
		}
		return ary;
	}
	/*
	 * 冒泡排序
	 */
	public static int[] bubolSort(int[] ary){
		for(int i=0;i<ary.length;i++){
			for(int j=0;j<ary.length-i-1;j++){
				if(ary[j]>ary[j+1]){
					int temp=ary[j+1];
					ary[j+1]=ary[j];
					ary[j]=temp;
				}
			}
		}
		return ary;
	}
	/*
	 * 插入排序
	 */
	public static int[] InserSort(int[] ary){
		for(int i=0;i<ary.length;i++){
			int temp =ary[i];
			int j;
			for(j=i-1;j>=0 && temp<ary[j];j--){
				if (temp<ary[j]){
					ary[j+1]=ary[j];
				}else{
					break;
				}
			}
			ary[j+1]=temp;
		}
		return ary;
	}
		
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐