【C#】1.算法温故而知新 - 简单的桶排序

简介:

该算法的时间复杂度是O(M+N),M为桶的个数,N为待排序的个数

 

缺点:

1.不适用于小数

2.当数值过多,太浪费空间,比如数值范围为0~99999,那需申请100000个变量,也就是要写成a[1000000]。

 

 

代码如下:

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    public class Program
    {
        public static void Main(string[] args)
        {
            int[] nums = new int[9] { 2, 1, 9, 2, 7, 3, 1, 8, 2 };//初始化一个数组,其中有9个数,每个数都不大于10,这里假定是我们输入的数,需要从小到大排序
            int[] a = new int[11];//因为每个数都不大于10,所以初始化一个包含11个数的数组a
            int i, j, t;
            for (i = 0; i <= 10; i++) a[i] = 0;//给a数组赋值都为0

            for (i = 0; i < nums.Length; i++)
            {
                t = nums[i];//获取当前的数
                a[t]++;//进行计数
            }
            for (i = 0; i <= 10; i++)//依次判断a[0]~a[10]
                for (j = 1; j <=a[i]; j++)//出现了几次就输出几次
                    Console.Write("  " + i);
        }
    }
}
复制代码





本文转自叶超Luka博客园博客,原文链接:http://www.cnblogs.com/yc-755909659/p/3986443.html,如需转载请自行联系原作者
目录
相关文章
|
5月前
|
开发框架 算法 搜索推荐
C# .NET面试系列九:常见的算法
#### 1. 求质数 ```c# // 判断一个数是否为质数的方法 public static bool IsPrime(int number) { if (number < 2) { return false; } for (int i = 2; i <= Math.Sqrt(number); i++) { if (number % i == 0) { return false; } } return true; } class Progr
116 1
|
5月前
|
搜索推荐 算法 C#
【Unity 3D】C#中冒泡排序、选择排序、插入排序等算法的详解(附源码 超详细)
【Unity 3D】C#中冒泡排序、选择排序、插入排序等算法的详解(附源码 超详细)
97 1
|
4天前
|
搜索推荐 Java Go
探究桶排序算法
探究桶排序算法
9 1
|
4天前
|
机器学习/深度学习 算法 数据挖掘
使用C# 实现期望最大化算法
使用C# 实现期望最大化算法
19 0
|
1月前
|
存储 算法 C#
C#二叉搜索树算法
C#二叉搜索树算法
|
2月前
|
存储 搜索推荐 算法
Python中的桶排序算法
总结而言,桶排序是一个非常高效的排序算法,尤其适用于数据分布均匀的情况。正确实现和使用桶排序可以在特定情况下获得极高的排序速度。
14 0
|
3月前
|
算法 搜索推荐 C#
|
4月前
|
存储 编解码 算法
C#.NET逃逸时间算法生成分形图像的毕业设计完成!晒晒功能
该文介绍了一个使用C#.NET Visual Studio 2008开发的程序,包含错误修复的Julia、Mandelbrot和优化过的Newton三种算法,生成色彩丰富的分形图像。作者改进了原始算法的效率,将内层循环的画点操作移至外部,提升性能。程序提供五种图形模式,支持放大缩小及颜色更新,并允许用户自定义画布大小以调整精度。还具备保存为高质JPG的功能。附有四张示例图片展示生成的分形效果。
|
3月前
|
Dart 算法 JavaScript
C#数据结构与算法入门教程,值得收藏学习!
C#数据结构与算法入门教程,值得收藏学习!
|
3月前
|
机器学习/深度学习 算法 搜索推荐
一个开源且全面的C#算法实战教程
一个开源且全面的C#算法实战教程