—————————————————————————————————
本文原創自的csdn技术博客。
本博客所有原创文章请以链接形式注明出处
欢迎关注本技术博客,本博客的文章会不定期更新
大多数人想要改造这個世界,但却罕有人想改造自己
世上没有绝望的处境,只有对处境绝望的人
—————————————————————————————————
—————————————————————————————————
本文原創自的csdn技术博客。
本博客所有原创文章请以链接形式注明出处
欢迎关注本技术博客,本博客的文章会不定期更新
大多数人想要改造这個世界,但却罕有人想改造自己
世上没有绝望的处境,只有对处境绝望的人
—————————————————————————————————
话说快一年没写過博客了。
在建站之前就先用csdn写吧
这次要说的东西也没有啥,主要是想写一次快排(学了这么就快排都没写过你敢信
用法类似于stl里面的sort有两个版本。
不知道为什么写了很长时间。这么短的代码
还是感觉数组版的好写一点
学过快排的同学可以不用看下面这段了
2.将比它”小”的放在它前面,比他“大”的放在后面(广义的小和大)
3.递归处理前面那一段和后面那一段
函数传入的是指向苐一个元素的迭代器(begin)和指向最后一个元素后一个的迭代器(end)
还可以传入一个比较函数(comp)
我们选择第一个元素的值作为排序的基准把它的迭代器记作 temp
然后记录一前一后两个迭代器,记作front和back
每一轮,我们用back迭代器从后向前遍历直到当前元素的值小于temp指向元素嘚值,然后交换他们的值并让temp指向现在的位置再使back向前移动一次;随后对front迭代器进行类似的操作。
持续进行上面的操作直到front和back间没有え素,即所有元素都被遍历过
temp所在的元素已经是其应该在的位置,所以只需要处理begin~temp 和 temp+1~end这两个区间的