当前位置 博文首页 > 0102的博客:数据结构与算法--经典10大排序算法(动图演示)【建
public class BubbleSort {
public static int[] getArrayData(){
int[] arrayData = new int[20];
Random random = new Random();
for (int i = 0; i < 20; i++) {
arrayData[i] = random.nextInt(1000);
}
return arrayData;
}
/**
* 时间复杂度 O(n^2) 空间复杂度O(1)
* 从小到大排序冒泡排序
* */
public static int[] bubbleSort(int[] arrayData){
if(null == arrayData || arrayData.length <= 1){
return arrayData;
}
for (int i = 0; i < arrayData.length; i++) {
for (int j = 0; j < arrayData.length - 1; j++) {
if(arrayData[j] > arrayData[i]){
int temp = arrayData[j];
arrayData[j] = arrayData[i];
arrayData[i] = temp;
}
}
}
return arrayData;
}
public static void main(String[] args) {
int[] arrayData = bubbleSort(getArrayData());
for (int i = 0; i < arrayData.length; i++) {
System.out.println(arrayData[i]);
}
}
}
public class BubbleSort {
public static int[] getArrayData(){
int[] arrayData = new int[20];
Random random = new Random();
for (int i = 0; i < 20; i++) {
arrayData[i] = random.nextInt(1000);
}
return arrayData;
}
/**
* 时间复杂度 O(n^2) 空间复杂度O(1)
* 从小到大选择排序
* */
public static int[] selectionSort(int[] arrayData){
if(null == arrayData || arrayData.length <=1){
return arrayData;
}
for (int i = 0; i < arrayData.length; i++) {
int last = arrayData[i];
int position = i;
for (int j = i+1; j < arrayData.length; j++) {
if(last > arrayData[j]){
last = arrayData[j];
position = j;
}
}
int temp = arrayData[i];
arrayData[i] = arrayData[position];
arrayData[position] = temp;
}
return arrayData;
}
public static void main(String[] args) {
int[] arrayData = selectionSort(getArrayData());
for (int i = 0; i < arrayData.length; i++) {
System.out.println(arrayData[i]);
}
}
}
public class BubbleSort {
public static int[] getArrayData(){
int[] arrayData = new int[20];
Random random = new Random();
for (int i = 0; i < 20; i++) {
arrayData[i] = random.nextInt(1000);
}
return arrayData;
}
/**
* 时间复杂度 O(n^2) 空间复杂度O(1)
* 从小到大插入排序
* */
public static int[] insertionSort(int[] arrayData){
if(null == arrayData || arrayData.length <= 1){
return arrayData;
}
for (int i = 1; i < arrayData.length; i++) {
for (int j = i; j > 0; j--) {
if(arrayData[j-1] > arrayData[j]){
int temp = arrayData[j-1];
arrayData[j-1] = arrayData[j];
arrayData[j] = temp;
}
}
}
return arrayData;
}
public static void main(String[] args) {
int[] arrayData = insertionSort(getArrayData());
for (int i = 0; i < arrayData.length; i++) {
System.out.println(arrayData[i]);
}
}
}
public class BubbleSort {
public static int[] getArrayData(){
int[] arrayData = new int[20