排序:冒泡排序
方式一
public class BubbleSort {
public static void main(String[] args) {
int[] a = {3, 5, 6, 1, 2, 0, 9, 8, 7, 4};
//List<Integer> list = Arrays.asList(3,5,6,1,2,0,9,8,5,4);
//外层循环,循环的趟数
for (int i = 0; i <= a.length - 1; i++) {
//内层循环,交换的次数
for (int j = 0; j < a.length - 1 - i; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
System.out.println("从小到大排序后的结果是:"+ Arrays.toString(a));
for (int i = 0; i < a.length; i++)
System.out.print(a[i] + " ");
}
}
方式二:
public class BubbleSort1 {
public static void sort(Comparable[] a) {
for (int i = 0; i < a.length - 1; i++) {
for (int j = 0; j < a.length - 1 - i; j++) {
if (greater(a[j], a[j+1])) {
change(a, j, j + 1);
}
}
}
}
//判断后面的值是否比前面的值大
private static boolean greater(Comparable w ,Comparable v){
return w.compareTo(v) > 0;
}
//交换元素
private static void change(Comparable[] a, int i, int j){
Comparable t = a[i];
a[i] = a[j];
a[j] = t;
}
public static void main(String[] args) {
Integer[] a = {4,5,6,3,2,1,9,7,8};
BubbleSort1.sort(a);
System.out.println(Arrays.toString(a));
}
}
选择排序
方式一:
public class SelectorSort {
public static void main(String[] args) {
int[] a = {3, 5, 6, 1, 2, 0, 9, 8, 5, 4};
//循环的趟数
for (int i = 0; i < a.length; i++) {
//初始化最小值的索引为i
int min = i;
//内层循环,交换的趟数
for (int j = i; j < a.length; j++) {
//前面的值大于后面值交换最小值的索引
if (a[j] < a[min]) {
min = j;
}
}
int temp = a[i];
a[i] = a[min];
a[min] = temp;
}
System.out.println(Arrays.toString(a));
}
}
方式二:
public class SelectorSort1 {
public static void sort(Comparable[] a) {
for (int i = 0; i < a.length - 2; i++) {
//初始化一个最小索引
int min = i;
for (int j = i + 1 ; j < a.length; j++) {
if (greater(a[min], a[j])) {
min = j;
}
}
change(a, i, min);
}
}
//判断后面的值是否比前面的值大
private static boolean greater(Comparable w ,Comparable v){
return w.compareTo(v) > 0;
}
//交换元素
private static void change(Comparable[] a, int i, int j){
Comparable t = a[i];
a[i] = a[j];
a[j] = t;
}
public static void main(String[] args) {
Integer[] a = {4,5,6,3,2,1,9,7,8};
SelectorSort1.sort(a);
System.out.println(Arrays.toString(a));
}
}