zoukankan      html  css  js  c++  java
  • 算法与数据结构 (六) 排序 三 非比较类的排序 基数排序

    一 简介

    排序(内部)可以从另一个方法分类,也就是比较类和非比较类。对于一个序列,1 65 3 6 22 其它的几种排序都会比较内部的比较。比如1 和65比较。

    而基数排序空间换时间也就是对于  上面的序列  先比较个位 也就是 1 22 3 65 6  第二轮 就是 1 3 6 22  65.对于计算机思想就是准备10个数组存储当前位是0 1 2  3....的数组

    二 代码的简单实现

    package sort;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    public class JiShu {
        public static void main(String[] args) {
            int arr[] = {1, 52, 32, 10, 23,150,89,9};
            jiShu(arr,3);
            System.out.println(Arrays.toString(arr));
    
        }
        public static void jiShu(int []arr,int length) {
            List<Integer>[] list = new List[10];
            for (int i = 0; i < list.length; i++) {
                list[i] = new ArrayList<>();
            }
            int now = 0;
            while(now<length) {
                int number = (int)Math.pow(10,  now);
    
                for (int i = 0; i < arr.length; i++) {
                    int temp = arr[i] /number;
                    temp = temp % 10;
                    list[temp].add(arr[i]);
                }
                int temp = 0;
                for (int k = 0; k < list.length; k++) {
    
                    if (list[k].size() != 0) {
                        for (int j = 0; j < list[k].size(); j++) {
                            arr[temp++] = list[k].get(j);
                        }
                        list[k].clear();
    
                    }
                }
                System.out.println("第"+(now+1)+"轮:"+Arrays.toString(arr));
                now++;
            }
        }
    }
    

      

  • 相关阅读:
    深入了解Struts2返回JSON数据的原理及具体应用范例
    Struts国际化
    LeetCode Balanced Binary Tree
    LeetCode Triangle
    Binary Tree Level Order Traversal
    Pow(x,n)
    Symmetric Tree
    LeetCode Word Search
    LeetCode Insert Interval
    Maximum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/caijiwdq/p/11070867.html
Copyright © 2011-2022 走看看