프로그래밍/알고리즘

Sort(countingSort, radixSort)

프리월드 2017. 2. 24. 21:15

public void bestRadixSort(int[] data) {

    int digit = 0;
    for (int i = 0i < data.lengthi++) {
        int length = String.valueOf(data[i]).length();
        if (length > digit) {
            digit = length;
        }
    }

    for (int i = 0i < digiti++) {

        int[] digitData = new int[data.length];

        for (int j = 0j < data.lengthj++) {
            int idx = (int) ((data[j] % Math.pow(10i + 1)) / Math.pow(10i));
            digitData[j] = idx;
        }

        data = countingSort(digitDatadata10);
    }
}

public int[] countingSort(int[] data, int[] originalData, int k) {
    int count[] = new int[k];
    for (int i = 0i < data.lengthi++)
        count[data[i]]++;
    for (int i = 1i < ki++)
        count[i] += count[i - 1];
    int sorted[] = new int[data.length];
    for (int i = data.length 1i >= 0i--) {
        sorted[--count[data[i]]] = originalData[i];
        //sorted[--count[data[i]]] = data[i];
    }
    return sorted;
}


'프로그래밍 > 알고리즘' 카테고리의 다른 글

다익스트라(Dijkstra Algorithm)  (0) 2017.02.24
DFS(미로찾기)  (0) 2017.02.24
이진트리(BinaryTree)  (0) 2017.02.24
quickSort  (0) 2017.02.24
Queue  (0) 2017.02.24