一、冒泡排序
代码实现:
public class Test_bubbleSort {
public static void main(String[] args) {
int[] arr = {23,56,15,13,36};
bubbleSort(arr);
print(arr);
}
//冒泡排序
public static void bubbleSort(int[] arr) {
for(int i = 0;i <arr.length-1; i++) {
for(int j = 0; j < arr.length-1-i; j++) {
if(arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
//swap(arr,i,j+1);
}
}
}
}
//打印
private static void print(int[] arr) {
for(int i = 0;i < arr.length;i++) {
System.out.println(arr[i]);
}
}
//转换
public static void swap(int[] arr,int i,int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
算法的时间复杂度为O(n^2),空间复杂度为O(1)。
二、选择排序
代码实现:
public class Test_selectSort{
public static void main(String[] args) {
int[] arr = {4,7,2,9,0,5};
selectSort(arr);
print(arr);
}
//选择排序
public static void selectSort(int[] arr) {
for(int i = 0; i < arr.length -1; i++) {
for(int j = i+1;j < arr.length; j++) {
if(arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
//swap(arr,i,j);
}
}
}
}
//打印
public static void print(int[] arr) {
for(int k =0;k<arr.length;k++)
{
System.out.println(arr[k]);
}
}
//换位操作
private static void swap(int[] arr,int i,int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
算法的时间复杂度为O(n^2),空间复杂度为O(1)。