一:冒泡排序
1:定义:
冒泡排序的算法是通过对相邻元素的大小进行比较,每一轮将一个最小或最大的数放到队列的最后面。
2:例题:
定义一个数组,然后对其赋值进行冒泡排序
图解:
代码
package Main; import java.util.Arrays; public class Demo2 { public static void main(String[] args) { int[] age ={5,1,2,4,9,3}; for (int j = 0;j < age.length -1; j ++) { for (int i= 0;i < age.length-1-j;i ++){ int temp = 0; if(age[i]>age[i+1]){ temp = age[i]; age[i] = age[i+1]; age[i+1] = temp; } } } System.out.println(Arrays.toString(age)); } }
二:选择排序
1定义
选择排序是一种简单直观的排序算法,它的基本思想是每次从待排序的数据元素中选择最小(或最大)的一个元素,放到已排序序列的末尾,直到全部待排序的数据元素排完为止。
2:例题
定义一个数组,然后对其赋值按照升序进行选择排序
(1)图解
(2)代码
package Main; import java.util.Arrays; public class Demo5 { public static void main(String[] args) { int[] arrgs = {4, 0, 6, 8, 2}; for (int i = 0; i < arrgs.length; i++) { int min = i; for (int j = i + 1; j < arrgs.length; j++) { if (arrgs[min] > arrgs[j]) { min = j; } } int temp = arrgs[i]; arrgs[i] = arrgs[min]; arrgs[min] = temp; } System.out.println(Arrays.toString(arrgs)); } }
三:插入排序
1:定义:
插入排序是一种简单直观的排序算法,它的基本思想是将一个待排序的元素插入到已经排好序的部分中的适当位置,从而得到一个新的有序序列。
具体步骤如下:
-
将待排序序列的第一个元素视为已排序序列,将第二个元素到最后一个元素视为未排序序列。
-
从未排序序列中取出第一个元素,将其与已排序序列中的元素从后往前依次比较,找到合适的位置插入。
-
重复步骤2,直到未排序序列中的所有元素都被插入到已排序序列中。
插入排序的时间复杂度为O(n^2),其中n为待排序序列的长度。它是一种稳定的排序算法,适用于小规模数据或部分有序的数据。
2:例题
定义一个数组,然后对其赋值按照升序进行选择排序
(1)图例
(2)代码
package Main; import java.util.Arrays; public class Demo5 { public static void main(String[] args) { int[] arrgs = {4, 0, 6, 8, 2}; for (int i = 0; i < arrgs.length; i++) { int current = arrgs[i]; //定义当前值 int preIndex = i -1; //前一个元素的下标 while (preIndex >=0 && current<arrgs[preIndex]){ arrgs[preIndex + 1] = arrgs[preIndex]; //向后移动一位 preIndex --; } arrgs[preIndex + 1] = current; //当前值的位置 } System.out.println(Arrays.toString(arrgs)); } }