假设您的意思是http://en.wikipedia.org/wiki/American_flag_sort,那么正如本文顶部指出的那样,您可以就地运行此代码(尽管这不是一个稳定的排序方法)。主要思想是要有一个指向未读入的第一个项目的指针,最初是0,还有一个临时变量来保存一个项目。
第一步,您查看指针并拾取它指向的项目。现在,您可以使用索引来放置它。除非它的位置是您最初读取的位置,否则您将要覆盖另一个项目,因此您将要拾取的项目与要覆盖的项目交换,现在您持有另一个临时项目-
抬头看一看应该去哪里继续下去。
最终,您将某些东西放到了要读取的位置,因此您可以增加读取指针,跳过已经写入已排序项目的区域,拾取另一个项目,然后继续进行直到所有内容都已排序为止。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)