`

CountingSort

J# 
阅读更多
    /**
     *
     * @param intArray
     * @return
     */
    public static int[] countingSort(int[]intArray){
        int k=findMax(intArray)+1;
        int[]tempArray=new int[k];
        int[]outArray=new int[intArray.length+1];
        ////////////////////////////////////////////////////
        for(int value:tempArray)       value=0;        // initial temp array
        for(int index:intArray)         tempArray[index]+=1;    // confirm each index show tempArray[index] times
        for(int i=1;i<k;i++)                 tempArray[i]+=tempArray[i-1];    // get each location
        for(int j=intArray.length-1;j>=0;j--)    outArray[tempArray[intArray[j]]--]=intArray[j];    // get the result
        ////////////////////////////////////////////////////
        int[]result=new int[intArray.length];
        for(int i=0;i<result.length;i++){
            result[i]=outArray[i+1];
        }
       
        return result;
    }
    /**
     *
     * @param intArray
     * @return
     */
    private static int findMax(int[]intArray){
        int index=0;
        int max=intArray[index];
       
        for(index=0;index<intArray.length;index++){
            if(intArray[index]>max)    max=intArray[index];
        }
        return max;
    }
分享到:
评论

相关推荐

    AlgorithmMan by Iori(Counting Sort)

    CountingSort为AlgorithmMan中的计数排序演示工具(这是可执行文件;需要.net 4.0支持;非源代码)。 原文:C#算法设计排序篇之08-计数排序(附带动画演示程序) 链接:...

    排序算法-基于C语言实现的排序算法之CountingSort实现.zip

    **C语言实现CountingSort:** C语言的简洁和高效使得它成为实现算法的理想选择。以下是一个简单的Counting Sort C语言实现的框架: ```c #include void countingSort(int arr[], int n) { // 步骤1和2:初始化...

    计数排序JAVA实现counting sort algorithm

    public static int[] countingSort(int[] arr) { // Step 1: 获取数组最大值 int max = Arrays.stream(arr).max().getAsInt(); // Step 2: 初始化计数数组 int[] countArray = new int[max + 1]; // Step ...

    排序算法之CountingSort

    python 排序算法之CountingSort

    基数排序_Countingsort.zip

    基数排序_Countingsort

    CountingSort:计数排序算法的实现

    var countingSort = require ( './countingSort.js' ) ; // Construct input [0, 5], therefore an array of size 6 is needed // for the temporary storage space. var input = [ 2 , 5 , 3 , 0 , 2 , 3 , 0 , 3 ...

    countingSort:计数排序是一种基于特定范围内的键的排序技术。 它通过计算具有不同键值(有点像哈希)的对象数来工作

    function countingSort(arr) { const min = Math.min(...arr); const max = Math.max(...arr); const count = new Array(max - min + 1).fill(0); arr.forEach(num =&gt; count[num - min]++); const sortedArr...

    java实现计数排序算法

    countingSort 方法实现了计数排序算法。首先,我们遍历一遍原数组,找出其中的最大值,以确定计数数组的大小。然后,创建计数数组 count,并将每个元素的出现次数记录在计数数组中。接下来,根据计数数组中的元素...

    radix sort

    在这个例子中,`countingSort`函数实现了计数排序,`radixsort`函数负责调用`countingSort`并处理从低位到高位的每一位。这段代码适用于整数数组的排序,如果需要处理浮点数或者负数,还需要进行适当的修改。 总结...

    python 实现 排序 课程设计 代码

    计数排序(Counting Sort) 循环排序(Cycle Sort) 双重排序(Double Sort) 荷兰国旗排序(Dutch National Flag Sort) 交换排序(Exchange Sort) 外部排序(External Sort) 侏儒排序(Gnome Sort) 堆排序...

    排序算法大全

    Rank Sort是Comparison Counting Sort的变形,省略了资料排名阵列,而在每一次需要时再去扫瞄资料算出,因此速度更慢。然而,这个程式并没有考虑到键值相同的情况,因此并不实用。 Distribution Counting Sort也是 ...

    常用的8个Python排序算法

    1. 冒泡排序(Bubble Sort) def bubble_sort(arr): n = len(arr) for i in range(n): for j in range(0, n-i-1): if arr[j] &gt; arr[j+1]: ...8. 计数排序(Counting Sort) 解压密码 douge

    count_sort.zip_count_sort_in

    在`main`函数中,我们创建了一个测试数组并调用`countingSort`函数进行排序,最后打印出排序后的结果。 需要注意的是,计数排序不是稳定的排序算法,即相等的元素可能会改变它们原来的相对顺序。此外,当元素范围很...

    常用的十种java排序算法实现

    1. 冒泡排序(Bubble Sort) public static void bubbleSort(int...7. 计数排序(Counting Sort) 8. 桶排序(Bucket Sort) 9. 基数排序(Radix Sort) 10. 希尔排序(Shell Sort) 解压密码 douge

    经典算法的C#源码实现

    经典的排序算法C#源码,包括: 经典排序算法 - 快速排序Quick sort 经典排序算法 - 桶排序Bucket sort 经典排序算法 - 插入排序Insertion sort 经典排序算法 - 基数排序...经典排序算法 - 计数排序Counting sort

    几种常见排序算法实现

    1.7 CountingSort: 假设数据分布在0到k之间的。对于每个输入x,确定出小于x的数的个数。假设小于x的数有17个,那么x就应该在第18个输出位置。 1. 8 Radix sort(基数排序):从最低位开始,每位采用稳定的排序算法...

    算法编程题 排序、搜索、图论、动态规划

    计数排序(Counting Sort) 桶排序(Bucket Sort) 基数排序(Radix Sort) 搜索算法 线性搜索(Linear Search) 二分搜索(Binary Search) 深度优先搜索(Depth-First Search) 广度优先搜索(Breadth-First ...

    基数排序-radix sort

    `countingSort`通常会使用一个额外的数组作为计数桶,然后根据计数结果调整原始数组。 ### 4. 时间复杂度与空间复杂度 基数排序的时间复杂度为O(kn),其中k是数字的最大位数,n是数字的个数。它的空间复杂度是O(n+...

    LeetCode最全代码

    | _O(n)_ ~ _O(n^2)_ | _O(n)_ | Medium || Bit Manipulation, Counting Sort, Pruning| 342 | [Power of Four](https://leetcode.com/problems/power-of-four/) | [C++](./C++/power-of-four.cpp) [Python](./...

    基数排序

    private void countingSort(int[] nums, int base, int digit) { int[] count = new int[base]; int[] output = new int[nums.length]; for (int num : nums) { count[getDigit(num, base, digit)]++; } ...

Global site tag (gtag.js) - Google Analytics