- //以前的注释,还让它保留着
- int partition(string &str,int lo,int hi)
- {
- int key = str[hi]; //以最后一个元素,data[hi]为主元
- int i = lo - 1;
- for(int j = lo; j < hi; j++) ///注,j从p指向的是r-1,不是r。
- {
- if(str[j] <= key)
- {
- i++;
- swap(str[i], str[j]);
- }
- }
- swap(str[i+1], str[hi]); //不能改为swap(&data[i+1],&key)
- return i + 1;
- }
- //递归调用上述partition过程,完成排序。
- void quicksort(string &str, int lo, int hi)
- {
- if (lo < hi)
- {
- int k = partition(str, lo, hi);
- quicksort(str, lo, k - 1);
- quicksort(str, k + 1, hi);
- }
- }
字符串排序
最新推荐文章于 2018-05-17 18:13:02 发布