冒泡排序
/**
* 冒泡排序,从小到大排序
* 思想:将最大值挪到数组最后面,依次累推
*/
public class BubbleSort {
public static void main(String[] args) {
int array[] = {1, 23, 4, 22, 3, 11, 24, 19, 6, 11};
for (int i = 0; i < array.length; i++) {
//内层遍历,将最小(最大)数放在数组最后面
for (int j = 0; j < array.length - i - 1; j++) {
if (array[j] > array[j + 1]) {
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
//输出数组
for (int j : array) {
System.out.print(j + " ");
}
}
}
简单选择排序
/**
* 简单选择排序,从小到大排序
* 思想:将最小值找出来放在数组第一个位置,第二小的值放数组第二个位置,依次类推
*/
public class SelectSort {
public static void main(String[] args) {
int array[] = {1, 23, 4, 22, 3, 11, 24, 19, 6, 11};
for (int i = 0; i < array.length - 1; i++) {
int min = i;//假定第一个为最小值,记录最小值下标,方便交换数据
for (int j = i + 1; j < array.length; j++) {
if (array[j] < array[min]) {
min = j;
}
}
//将最小值放在数组最前面
if (min != i) {
int temp = array[i];
array[i] = array[min];
array[min] = temp;
}
}
//输出数组
for (int j : array) {
System.out.print(j + " ");
}
}
}
直接插入排序
/**
* 直接插入排序,从小到大排序
* 思想:从下标1开始依次将数据插入到数组前面已经有序的序列中
*/
public class InsertSort {
public static void main(String[] args) {
int array[] = {1, 23, 4, 22, 3, 11, 24, 19, 6, 11};
for (int i = 1; i < array.length; i++) {
int temp = array[i];//array[i]会被覆盖,先记录下来
int j;//记录最终的下标
for (j = i; array[j - 1] > temp && j - 1 > 0; j--) {
array[j] = array[j - 1];//数据向后挪动
}
array[j] = temp;
}
//输出数组
for (int j : array) {
System.out.print(j + " ");
}
}
}
参考:https://blog.csdn.net/yushiyi6453/article/details/76407640#commentBox