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

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;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值