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

java实现三种简单排序以及改良:冒泡排序,选择排序,直接插入排序

2017-01-18 21:58 986 查看
import java.util.Arrays;

public class Sort {
public static void main(String[] args) {
int[] array={18,17,20,9,10};
bubble1(array);
System.out.println(Arrays.toString(array));

}
//冒泡排序:从第一个数开始,将最大的数移到最前面,重复
//简单的改进(有多种改进方式)某一趟没有任何数据交换,数据排序完毕
public static void bubble1(int[] array){
int temp = 0;
boolean issorted = false;
for (int i = array.length-1; i >0&&!issorted ; i--) {
issorted = true;
for (int j = 0; j <i; j++) {
if(array[j]>array[j+1]){
issorted = false ;
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}
//冒泡排序:从最后一个数数开始,将最小的数移到最前面,重复
public static void bubble2(int[] array){
int temp = 0;
for (int i = 0; i < array.length-1; i++) {
for (int j = array.length-1; j >i; j--) {
if(array[j]<array[j-1]){
temp = array[j];
array[j] = array[j-1];
array[j-1] = temp;
}
}
}
}
//选择排序
public static void selection(int[] array){
int k = 0,temp = 0;
for (int i = 0; i < array.length-1; i++) {//比较到倒数第二个,最后一个自然放置好
k=i;
for (int j = 0; j < array.length; j++) {//因为有k=i,故从i+1开始1 17 20 9 10
if (array[k]>array[j]) {
k=j;
}
}
if(k!=i){
temp = array[i];
array[i] = array[k];
array[k] = temp;
}
}
}
//插入排序
public static void insert(int[] array){
int temp;
int j;
for (int i = 1; i < array.length; i++) {
temp = array[i];
for(j = i-1; j >= 0&&array[j] > temp; j--) {//前面数值大于temp才后移
//如果这里添加if(array[j]>temp)
array[j+1] = array[j];
}
array[j+1] = temp;
}
}

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