冒泡排序
算法思想:数组中第一个元素和第二个元素比较,按照规则进行交换,再让第二个和第三个进行比较,直到最大或最小的那个数交换到最后,一趟冒泡排序完成。以升序为例,冒泡排序主要是让大的下沉,小的上浮,每一趟排序确立一个当前无序序列中最大的那个数,使之下沉。
时间复杂度分析:
最坏:整个数组逆序,最内层循环的语句执行(n-1+1)(n-1)/2 = n(n-1)/2 ==> O(n^2)
最好:数组有序,O(n)
平均:O(n^2)
空间复杂度:O(1)
<
算法思想:数组中第一个元素和第二个元素比较,按照规则进行交换,再让第二个和第三个进行比较,直到最大或最小的那个数交换到最后,一趟冒泡排序完成。以升序为例,冒泡排序主要是让大的下沉,小的上浮,每一趟排序确立一个当前无序序列中最大的那个数,使之下沉。
时间复杂度分析:
最坏:整个数组逆序,最内层循环的语句执行(n-1+1)(n-1)/2 = n(n-1)/2 ==> O(n^2)
最好:数组有序,O(n)
平均:O(n^2)
空间复杂度:O(1)
<