设有一个含n个元素的数组,数组元素为自然数,写出一个算法,将所有值为素数的元素排在所有值为奇数的元素之前,将所有值为奇数的元素排在所有值为偶数的元素之前,要求该算法的时间复杂度为O(n).

问题描述:

设有一个含n个元素的数组,数组元素为自然数,写出一个算法,将所有值为素数的元素排在所有值为奇数的元素之前,将所有值为奇数的元素排在所有值为偶数的元素之前,要求该算法的时间复杂度为O(n).

根据自然数的类型(素数,奇数,偶数)分成三个桶,然后用桶排序就可以了