1.快速排序
8.3_2_快速排序_哔哩哔哩_bilibili
优化后:时间复杂度O(nlogn) ,空间复杂度O(logn)
//优化后的快排
void Quick_sort(int a[], int l, int r)
{if (l >= r) return;把a数组中随机一个元素和a[l]交换 //快排优化int p = a[l], i = l, j = r; //p作为枢轴参与比较while (i < j){while (i < j && a[j] >= p) j--;a[i] = a[j];while (i < j && a[i] <= p) i++;a[j] = a[i];}a[i] = p;Quick_sort(a, l, i - 1); //递归处理左区间Quick_sort(a, i + 1, r); //递归处理右区间
}//未优化
void Quick_sort(int a[], int l, int r)
{if (l >= r) return;int p = a[l], i = l, j = r;while (i < j){while (i < j && a[j] >= p) j--;a[i] = a[j];while (i < j && a[i] <= p) i++;a[j] = a[i];}a[i] = p;Quick_sort(a, l, i - 1);Quick_sort(a, i + 1, r);
}