题目:三种排序算法
1. 冒泡排序法 2.选择排序法 3. 插入排序法
由小到大的顺序
备注:网上笔试题,代码是参考网上别人的,具体出处找不到了,请谅解。摘抄记录下来方便日后学习。如果有问题尽请批评指正,希望可以和大神一起交流。
冒泡排序的最好的时间复杂度为O(n),最坏的时间为O(n^2),算法的平均时间复杂度为O(n^2)。
选择排序法,寻找一组数据的最小值,将其取出放到初始位置,然后再继续寻找,算法的平均时间复杂度为O(n^2)。
插入排序算法的平均时间复杂度为O(n^2)。
public class BubbleSort {
//选择排序
public static void SelectSort(int[] arr) {
int temp;
for (int i = 0; i < arr.length; i++) {
for (int j = i+1; j < arr.length; j++) {
if (arr[i]>arr[j]) {
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
//冒泡排序
public static void BubbleSort(int[] arr){
int temp;
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-i-1; j++) {
if (arr[j+1]<arr[j]) {
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
//插入排序
public static void InsertSort(int[] arr){
int temp;
for (int i = 1; i < arr.length; i++) {
for (int j = i; (j>0) && (arr[j]<arr[j-1]); j--) {
temp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
}
}
}
public static void main(String[] args) {
int arr[]=new int[] {1,5,3,4,6,8,2,7};
//1.冒泡排序
// BubbleSort.BubbleSort(arr);
//2.选择排序
// BubbleSort.SelectSort(arr);
//3.插入排序
BubbleSort.InsertSort(arr);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}