这个代码 算是快速排序吗?

void px(int* nums, int m, int n)
{
	int i = m;
	int j = n - 1;
	int zero = nums[m];
	// 直到 i j 相等
	while (i < j)
	{
		//移动哨兵j
		while (i<j && nums[j]>nums[m])
		{
			j--;
		}

		//移动哨兵i 
		while (i < j && nums[i] <= nums[m])
		{
			i++;
		}

		// i j 均找到 开始交换;
		if (i != j){
			nums[i] = nums[i] ^ nums[j];
		nums[j] = nums[i] ^ nums[j];
		nums[i] = nums[i] ^ nums[j];
		}
	}
	if (i!=m)
	{
		nums[i] = nums[i] ^ nums[m];
		nums[m] = nums[i] ^ nums[m];
		nums[i] = nums[i] ^ nums[m];
	}

	for (int k = 0; k < 10; k++)
	{
		if (k % 10 == 0) printf("\n");
		printf_s("%d ", nums[k]);


	}
	printf("\n");
	//递归调用
	if (j - 1 - m > 0) {
		px(nums, m, j );
	}
	if (n - i - 1 > 0) {
		px(nums, i + 1, n);
	}



}

 

快速排序是对冒泡排序的改进,里面不会有递归算法调用。快速排序算法参考(文中有多种语言实现的快速排序算法):https://baike.baidu.com/item/%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95/369842?fr=aladdin

如有帮助,请采纳一下,谢谢。