光说不练假把式,学选择排序,做个题练练
一、题目
给你一个整数数组 nums,将 nums 中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。
返回满足此条件的 任一数组 作为答案。
二、示例
三、代码
public int[] SortArrayByParity(int[] nums)
{
int even_index = 0;
for (int i = 0; i < nums.Length; i++)
{
even_index = i;
for (int j = i+1; j < nums.Length; j++)
{
if (nums[j]%2==0)
{
even_index = j;
break;
}
}
int temp = nums[i];
nums[i] = nums[even_index];
nums[even_index] = temp;
}
return nums;
}
总结
先说一下选择排序
时间复杂度 O(n*n),因为用了两个循环,所以很慢,耗时很多。
选择排序就是遍历找到最小的放到新数组第一个,以此类推,再遍历找的最小的放在第二个。学的时候这样说的。
就是遍历,找到符合条件的记住下标,在内层循环结束后,把找到的那个元素位置换一下。
在继续循环,遍历再找到符合条件的,记住下标,当前内层循环结束后,交换位置。
以此类推。
选择排序耗时和占用内存如下: