快速排序
快速排序其实是在冒泡排序的基础上做出的一个改进.
最近开始学习视频了
快排的基础要义
1.确立分界点
2.调整
3.递归处理两边
典型的例题
785. 快速排序
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int n;
void quick_sort(int a[],int l,int r)
{
if (l >= r) return;
int i = l - 1, j = r + 1, x = a[l + r >> 1];
while (i < j)
{
do i ++ ; while (a[i] < x);
do j -- ; while (a[j] > x);
if (i < j) swap(a[i], a[j]);
}
quick_sort(a, l, j);
quick_sort(a, j+1, r);
}
int main()
{
cin>>n;
int a[n];
for(int i=0; i<n ;i++)
cin>>a[i];
quick_sort(a,0,n-1);
for(int i=0; i<n ;i++)
cout<<a[i]<<" ";
return 0;
}
本周的每日一题都比较简单
知识点:
1.revers(a,b);
颠倒
2.swap(a,b)
交换
3.next_permutation(q,q+n);
整体的排列改变。
4.穷举法的使用
1353. 滑雪场设计
就是吧所有可能的都算一遍;