13 调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
方法1:插入排序的思路:时间复杂度是N^2;
记录已经是奇数的位置下标(视作为有序区域),然后向后遍历,一经发现是奇数则进行“插入排序”,然后有序区下标加1。
func reOrderArray( array []int ) []int {
// write code here
if len(array) == 0 {
return nil
}
tmp := 0
j := 0//记录有序的奇数序列,最后一个位置
for i := 0; i < len(array);i++ {
if array[i] % 2 == 0 {
continue
} else {
k := i
tmp = array[i]
for k > j {
array[k] = array[k - 1]// // 这区间整体向后移动一位
k--
}
array[k] = tmp
j++
}
}
return array
}
方法2:开辟空间换时间。
分别使用一个slice存储奇数和偶数

浙公网安备 33010602011771号