简单排序有:1.冒泡排序。2.选择排序。3.插入排序。
原理:
1.假设数组有n个数据。
2.第1轮我们从下标0开始遍历,比较当前元素和相邻下一个元素大小,如果当前元素小于下一个元素,把当前元素和下一个元素替换位置,当遍历完下标为n-2的元素时,那么数组中最小的值就放到了数组的末尾,即下标为n-1的位置。第一轮遍历次数为n-1次。
3.开始第二轮遍历,依旧从下标0开始遍历,比较当前元素和响铃下一个元素大小,如果当前元素小于下一个元素,把当前元素和下一个元素替换位置,当遍历完到下标为n-3时,数组中第二小的元素就放到了数组倒数2,也就是小标为n-2的位置,结束第二轮遍历。第二轮遍历次数为n-2次。
4.当遍历到第n-1轮,遍历完下标为0的元素,数组中最大的值就放在了下标为0的位置。第n-1轮遍历次数为1次。
代码实现
package china.guo.calc.simplesort;
import java.util.Arrays;
//冒泡排序
public class Bubble {
//排序
public static void sort(Comparable[] array) {
for (int i = array.length-1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if (greater(array[j],array[j+1])){
exchange(array,j,j+1);
}
}
}
}
//比较c1和c2大小
public static boolean greater(Comparable c1,Comparable c2){
return c1.compareTo(c2)>0;
}
//交换索引i和索引j处的元素位置
public static void exchange(Comparable[] array,int i,int j){
Comparable temp;
temp = array[i];
array[i]=array[j];
array[j]=temp;
}
public static void main(String[] args) {
Integer[] array = new Integer[]{4,5,3,6,1,2};
sort(array);
System.out.println(Arrays.toString(array));
}
}
网友评论