给定一个整数数组,数组中有奇数有偶数,对数组进行排序,实现如下功能:
(1)奇数在前,偶数在后
(2)奇数之间的排序以及偶数之间的排序和原来一样
(3)时间复杂度是O(n)
如下数组:[3,1,2,4,5,6,7],要求排序之后为[3,1,5,7,2,4,6]。
分析:第(1)和第(2)说明类似于数组大小排序,不同之处在于这个是奇数偶数排序。第(3)要求时间复杂度是O(n),经典排序算法时间复杂度为O(n)的有冒泡排序,插入排序。
冒泡排序的原理:一组数据,一次比较两个相邻的元素,如果第一个元素小于第二个元素则交换顺序,否则下标自增,比较下两个元素,每次遍历都可以确定未拍好序的元素中的最大的那个。n次遍历就得到一个有序数组。每次遍历都从第一个元素开始,遍历到未排序的最后一个元素。
插入排序的原理:基于一个有序数组,通过从后向前的遍历方式确定新增元素的位置。需要将已排好序的元素逐个