天天看点

Java单链表实现快速排序普通快排的思路单链表的实现为具体函数实现在main函数是这样的测试结果

选择1个结点为中心点,保证中心点左边比中心点小,中心点右边比中心点大即可。这就是一次快排,确定一个数的正确位置,然后进行递归。

使第一个节点为中心点

创建2个指针(p,q),p指向头结点,q指向p的下一个节点

q开始遍历,如果发现q的值比中心点的值小,则此时p=p->next,并且执行当前p的值和q的值交换,q遍历到链表尾即可

把头结点的值和p的值执行交换。此时p节点为中心点,并且完成1轮快排

使用递归的方法即可完成排序

Java单链表实现快速排序普通快排的思路单链表的实现为具体函数实现在main函数是这样的测试结果