冒泡排序
- 每一次循环后,找出最大的数据,放到参与比较的数据的最右边
- 核心: 左边的数字和右边的对比,当左边大于右边的时候,交换位置
代码
public static void main(String[] args) {
int[] arrays = {1,2,1,3,4,2,5,3,5};
for (int i = arrays.length - 1; i > 0 ; i--) {
for (int j = 0; j < i; j++) {
if(arrays[j] > arrays[j + 1]){
int temp;
temp = arrays[j];
arrays[j] = arrays[j+1];
arrays[j + 1] = temp;
}
}
}
for (int i = 0; i < arrays.length; i++) {
System.out.print(arrays[i] + ",");
}
}
}
结果
选择排序
- 循环一次,找出参加这堆数据中最小的,拿着这个最小的值和最前面的数据交换位置
代码
public static void main(String[] args) {
int[] arrays = {1,2,1,3,4,2,5,3,5};
for (int i = 0; i < arrays.length - 1; i++) {
int min = 0 ;
for (int j = i + 1; j < arrays.length; j++) {
if(arrays[i] > arrays[j]){
min = j;
}
}
if(min != 0){
int temp;
temp = arrays[min];
arrays[min] = arrays[i];
arrays[i] = temp;
}
}
for (int i = 0; i < arrays.length; i++) {
System.out.print(arrays[i] + ",");
}
}
结果