计数排序

本文介绍了一种基于数组的计数排序算法实现,通过遍历输入数组确定最大和最小值,然后创建一个辅助计数数组来统计每个元素的出现次数。最后,根据计数数组重构排序后的数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

template <class T>
void
countSort(T* array, int len)
{
  T max = array[0];
  T min = array[0];
  for(int i =0 ;i<len; ++i){
    if(array[i]>=max)
      max = array[i];
    if(array[i]<min)
      min = array[i];
  }
  T* countArray = (T*)calloc(max+1, sizeof(T));
  for(int i=0; i<len; ++i){
    countArray[array[i]]++;
  }
  int arrayIndex = 0;
  for(int i=0; i<(max+1); ++i){
    for(int j=0; j< countArray[i] && countArray[i]>0; ++j){
      array[arrayIndex++]=i;
    }
  }
  free(countArray);
}

int
main()
{
  int array[10] = {10, 2, 3, 40, 5, 6, 7, 8, 9, 10};
  const int arraylen = sizeof(array)/sizeof(int);
  countSort(array, arraylen);
  for(int i =0; i< arraylen; ++i){
    printf("%d ", array[i]);
  }
  printf("\n");
}

转载于:https://www.cnblogs.com/zjfdlut/archive/2011/04/30/2033313.html

资源下载链接为: https://pan.quark.cn/s/967a7e1a5d94 《东北大学应用数理统计2009—2020真题及个人答案解析》是一份极具价值的学习资料,对于准备东北大学应用数理统计课程考试的学生而言意义非凡。它涵盖了十二年的考试真题以及作者的详细答案解析,为学生提供了一个深入了解考试方向、复习要点和解题技巧的优质平台。 数理统计作为应用数学的重要分支,主要基于概率论理论,通过收集、分析、解释和呈现数据来解决实际问题。在东北大学的该课程中,学生需掌握诸多核心知识点,包括样本与总体、随机变量、期望值与方差、概率分布、假设检验、置信区间、线性回归等。 首先,样本与总体是统计学的基础概念。通过对样本的研究来推断总体特征,理解它们之间的关系及抽样分布的重要性至关重要。其次,随机变量是概率论的核心,无论是连续型还是离散型随机变量,掌握其概率密度函数或概率质量函数是进行统计推断的关键。期望值和方差分别反映随机变量的平均值和波动程度,帮助我们了解随机现象的中心趋势和稳定性。此外,常见的概率分布如均匀分布、正态分布、泊松分布、二项分布等,对于分析实际问题中的数据分布极为重要。假设检验是科研和决策中的重要环节,常用的T检验、Z检验、卡方检验和F检验等方法,能够帮助判断数据是否支持特定假设。置信区间则用于估计总体参数的不确定范围,其计算和解释是理解统计推断的关键。线性回归是预测和建模的常用方法,通过分析最佳拟合直线来揭示变量间的关系,而残差分析、多重共线性和模型选择等则是提升回归分析能力的重要方面。 在解答这些真题时,作者不仅检验了自己的知识掌握程度,还分享了个人的解题思路和策略。这些内容对于后来的学习者来说极具参考价值。通过深入研究这些真题和答案,学生可以熟悉考试的常见题型,把握出题老师的命题风格,并学会如何高效地组织和呈现答案。这份资料对于提升学生的数理统计理论水平和
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值