前言
经常使用的算法应该就是快速排序与归并排序。
归并排序理解起来有点复杂,复杂的原因不仅在于归并排序分成了两个部分进行解决问题,而是在于,你需要一些算法的思想支撑。
一、快速排序
1.快速排序
快速排序又是一种分而治之思想在排序算法上的典型应用。本质上来看,快速排序应该算是在冒泡排序基础上的递归分治法。
快速排序的名字起的是简单粗暴,因为一听到这个名字你就知道它存在的意义,就是快,而且效率高!它是处理大数据最快的排序算法之一了
void quick_sort(int q[], int l, int r)
{
if (l >= r)return;//说明不需要排序
int x = q[l], i = l - 1, j = r + 1; //x为基准数
while (i < j)
{
do i++; while (q[i] < x);
do j