标签:顺序 amp ++ 数组 name tmp 重复 临时 tail
/// <summary>
/// 首尾双指针法
/// </summary>
/// <param name="nums"></param>
/// <returns></returns>
public int[] HeadTailExchange(int[] nums)
{
// 定义头指针 left ,尾指针 right ,临时变量 tmp
int left = 0;
int right = nums.Length - 1;
int tmp;
// 重复操作,直到 left == right 为止
while (left < right)
{
// left 一直往右移,直到它指向的值为偶数
while (left < right && (nums[left] & 1) == 1)
{
left++;
}
// right 一直往左移, 直到它指向的值为奇数
while (left < right && (nums[right] & 1) == 0)
{
right--;
}
// 交换
tmp = nums[left];
nums[left] = nums[right];
nums[right] = tmp;
}
return nums;
}
标签:顺序 amp ++ 数组 name tmp 重复 临时 tail
原文地址:https://www.cnblogs.com/wesson2019-blog/p/14512234.html