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

java:几种基本排序算法的温习

2014-11-25 15:29 274 查看
package test;

import java.util.Arrays;

/**
* 插入、冒泡、选择排序的温故
* @author wuling
*/
public class SortDemo {

public static void main(String[] args) {
String[] dest = {"23", "55", "63", "32", "64", "34", "88"};
String[] dest1 = dest.clone();
String[] dest2 = dest.clone();
int high = dest.length;
for (int i = 0; i < high; i++) {
// 插入排序=>思路:遍历集合,依次将前面的插入排好,最后完成
for (int j = i; j > 0 && (dest[j].compareTo(dest[j - 1])) < 0; j--) {
swap(dest, j, j - 1);
}
// 冒泡排序=>思路:遍历集合,依次将最大或者最小值移到前面,最后完成
for (int j = i + 1; j < high && dest1[i].compareTo(dest1[j]) < 0; j++) {
swap(dest, i, j);
}
// 选择排序=>思路:遍历集合,每次只将最大值移到当前位, 再整体集合非常无序的情况下,效率会较好, 每次只移动一次
int lowIndex = i;
for (int j = high - 1; j > i && dest2[j].compareTo(dest2[lowIndex]) < 0; j--) {
lowIndex = j;
}
swap(dest2, i, lowIndex);
}
System.out.println(Arrays.toString(dest));
System.out.println(Arrays.toString(dest1));
System.out.println(Arrays.toString(dest2));
}

/**
* Swaps x[a] with x[b].
*/
private static void swap(Object[] x, int a, int b) {
Object t = x[a];
x[a] = x[b];
x[b] = t;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: