奇数放在偶数前
1.最基本的思路就是扫描数组,碰到偶数则把所有的数前移,把这个偶数放在最后一个,这样的复杂度是O(n2)
2.第二种思路是只要碰到偶数就将它与一个奇数交换,用两个指针分别指向开头和结尾,然后开始移动,如果前一个是偶数,后一个是奇数,则交换,如果前一个是偶数,后一个也是偶数,则移动后一个向前。若前一个是奇数,后一个也是奇数,则移动前一个向后。这种做法的复杂度就是O(n),因为遍历一次,每个数也只操作了一次。
3.然后可以写一个有扩展性的第二个代码,也就是将奇数和偶数判断这个流程封装成一个函数,这样可以在以后换成别的需求,比如说负数放在非负数前等要求换成函数放里面。而整体判断的框架就是两个指针移动。