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

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

2014-03-17 20:53 627 查看
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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐