冒泡排序
原理:相邻元素两两进行比较,大的元素往后放
package com.itheima_day01;
import java.util.Arrays;
public class SortDemo2 {
public static void main(String[] args) {
int[] arr = { 24, 69, 80, 57, 13 };
for (int i = 0; i < arr.length - 1; i++) {// 遍历排序的次数
for (int x = 0; x < arr.length - 1; x++) {// 控制的是每次排序相邻元素比较
if (arr[x] > arr[x + 1]) {
int temp = arr[x];
arr[x] = arr[x + 1];
arr[x + 1] = temp;
}
}
System.out.println(Arrays.toString(arr));
}
}
}
插入排序
原理:将一组元素分为有序组,待插入组,每次从待插入组选取一个元素,好有序组进行从后往前比较,并把元素存储在合适的位置,直到待插入组元素为0
package com.itheima_day01;
import java.util.Arrays;
/*
* 插入排序进行排序
* 原理: 将一组元素分为有序组, 带插入组,每次从待插入组中选取一个元素, 和有序组进行从后往前比较, 并把元素存储在合适的位置, 直到待插入组元素为0
*/
public class SortDemo1 {
public static void main(String[] args) {
int[] arr = { 6, 5, 3, 1, 8, 7, 2, 4 };
// 定义一个变量, 记录待插入的元素
int temp;// 7
for (int x = 1; x < arr.length; x++) {// x = 5
temp = arr[x]; // 把待插入的元素赋值给temp
int y ;
// 遍历有序组元素
for ( y = x - 1; y >= 0; y--) {// y = 3
if(arr[y] > temp){
// 如果有序组中的元素比待插入的元素大, 那么就把有序组的这个元素往后移动一位
arr[y + 1] = arr[y];
}else{
break;
}
}
// 把待插入的元素,放到指定的位置
arr[y + 1] = temp;
System.out.println(Arrays.toString(arr));
}
}
}