100以内的数排序算法,要求时间复杂度为O(n),空间复杂度为O(1)

157 阅读1分钟

100以内的数排序算法,要求时间复杂度为O(n),空间复杂度为O(1)

public class test {
    public static void main(String[] args) {
        int test[] = {1,6,7,23,2,5,67,12};
        sort(test);
    }

    public static void sort(int test[]){
        int list[] = new int[100];
        for (int i = 0; i < test.length; i++) {
            list[test[i]]++;
        }
        for (int i = 0; i < list.length; i++) {
            if (list[i]>0) System.out.println(i+" ");
        }
    }
}

#include <iostream>
#define SIZE 100
using namespace std;
int main() {
    int test[] = {1, 6, 7, 23, 2, 5, 67, 12};
    int *list = new int[SIZE]();

    for (int i : test) {
        list[i]++;
    }
    for (int i = 0; i < SIZE; i++) {
        if (list[i]>0){
            cout << i << endl;
        }
    }
    delete[]list;
}