时间复杂度最快的排序算法 O(n) JAVA代码

时间复杂度最低的排序算法,为O(n),但是需要O(n)的空间复杂度。用哈希的思想来做的。
package AlgorithmTest;

/**
 * Created by dell on 2015/10/5.
 */
public class MostQuickSortHashSortTest {
    public static void main(String[] args) {
        int[] array = {6,7,8,9,8,99,8,5,6};//为0-100的数排序
        HashSort.HashMethodSort(array);
        for (int i : array){
            System.out.println(i);
        }
    }
}
class HashSort{
    public static  void HashMethodSort(int[] array){
        int max = Integer.MIN_VALUE;
        for (int element : array){
            if (element > max){
                max = element;
            }
        }

        int[] hashArray = new int[max + 1];
        for (int i = 0; i < hashArray.length; ++i){
            hashArray[i] = 0;
        }

        for (int element : array){
            ++hashArray[element];
        }

        int index = 0;
        for (int i = 0; i < hashArray.length; ++i){
            for (int j = 0; j < hashArray[i]; ++j){
                array[index++] = i;
            }
        }
    }
}
发布了70 篇原创文章 · 获赞 28 · 访问量 18万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览