Java实现常见排序算法
日常操作中常见排序方法有:冒泡排序、快速排序、选择排序、插入排序、堆排序等
以下是各排序算法定义及代码实现:
1、冒泡排序(Bubble Sort):是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序错误就把他们交换过来,直到没有相邻元素需要交换,也就是说该元素已经排序完成。该排序算法不稳定
/**
* 冒泡排序算法普通版(由小到大排列)
* 依次比较相邻的两个元素,如果位置相反就交换,直到没有需要交换的元素为止
* 时间复杂度:O(n^2)
* 该排序算法不稳定
*
* @param arr
*/
public static void bubbleSort(int[] arr){
int temp;
for(int i = 1; i < arr.length; i++){
for(int j = 0; j < arr.length - 1; j++){
if(arr[j] > arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
以上冒泡排序的时间复杂度始终为O(n^2),现在对代码进行优化
/**
* 冒泡排序算法优化版
* 时间复杂度:最好O(n),最坏平均O(n^2)
*/
public static void bubbleSort01(int[] arr){
int flag = 1;//设置标志位