快排最重要的就是 partition 函数,i 记录第一个不小于 pivot 的位置:
- 取数组中最后一个数字为 pivot,同时用 i 记录第一个位置;
- 遍历数组,比较每个数和 pivot;
- 数组内的值小于 pivot 时,进入循环;
- 保证 i 是第一个不小于 pivot 的位置;
- i == j, i ++
- i != j, 交换数组中 i 和 j,且 i++
记录 virtualenv 的使用
创建 virtual env 环境,这里上来就报错:
1 | OSError: Command /root/.local/share/letsencrypt/bin/python2.7 - setuptools pkg_resources pip wheel failed with error code 2 |
查到是由于多个版本的 virtualenv 冲突了,解决:
1 | $ python -V |
然后使用
1 | $ sudo apt-get purge python-virtualenv python3-virtualenv virtualenv |
删除,重新安装:
1 | $ pip install virtualenv |
这里有可能又报错 permission denied
,查了好多地方,说是要加 sudo
,但其实不是这么解决的,正确的安装方法是:
1 | $ pip install virtualenv --user |
即为当前的用户安装 pip
,原来自己以前用 pip
的姿势都是错的 o(╥﹏╥)o,使用 pip
千万不要加 sudo
啊,真是学习不规范,使用两行泪〒▽〒
开启虚拟环境:
1 | // 查找解释器位置 |
然后就可以愉快的使用了。。。
总结一下排序的算法
思路: 找出数组中最大的元素和下标,将下标对应的元素从旧数组中取出依次存入新的数组中
复杂度 $O(n^2)$
1 |
|
配个环境真是不容易,困难重重,到处是坑。。。
更新源以及安装依赖:
1 | $ sudo apt update |
下载 Anaconda:https://www.anaconda.com/download/ ,安装使用
1 | $ bash AnacondaXXXXXXX-86_64.sh |
出现许可,键入 q
跳过,输入 yes
表示同意,稍后是一些安装位置信息,回车即可。
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won’t be maintained after that date.
python 2.7
即将在今年停止支持,但很多基于 Ros Kinetic
的包都是基于 python 2.7
的,在 Ubuntu 不能升级的情况下也不能安装更高版本的 Ros
,由于最近用到的一些包是在 python 3
下的, 不得不考虑一下在 Ros Kinetic
下构建包,当然前后花费了好长时间,困难重重,几度奔溃。