当前位置:   article > 正文

C++ 单链表快速排序_单链表的排序c++

单链表的排序c++
  1. #include <string>
  2. #include <stdio.h>
  3. #include <iostream>
  4. using namespace std;
  5. typedef struct Node
  6. {
  7. int data;
  8. Node * next;
  9. }Node;
  10. void swap(Node * A, Node *B)
  11. {
  12. cout<<"swap before :"<<A->data<<" "<<B->data<<endl;
  13. int temp= A->data;
  14. A->data=B->data;
  15. B->data=temp;
  16. cout<<"swap after :"<<A->data<<" "<<B->data<<endl;
  17. }
  18. Node* getSeperator(Node * begin, Node * end)
  19. {
  20. Node * p = begin;
  21. Node * q = begin->next;
  22. int key = p->data;
  23. while(q!=end)
  24. {
  25. if(q->data <key)
  26. {
  27. p=p->next;
  28. swap(p,q);
  29. }
  30. q=q->next;
  31. }
  32. swap(begin,p);
  33. return p;
  34. }
  35. void quicksort(Node * begin , Node * end)
  36. {
  37. cout<<"sort begin";
  38. if(begin!=end)
  39. {
  40. Node* sep= getSeperator(begin,end);
  41. quicksort(begin,sep);
  42. if (sep != end) {
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/1006950
推荐阅读
相关标签
  

闽ICP备14008679号