基本思想:
定义一个带排序数中的最大数为DataForStore数组长度,一遍扫描带排序数组,将其值作为DataForStore数组中对应下标的数加1,随后在DataForStore数组中即是一排序号的数,顺序输出即可。
当然该算法有条件限制,如排序数中的最大数不能太大,至于DataForStore数组可以采用位存储方案,这里为了便于实验,即忽略空间要素。。。。。。
只是扫描一遍数组即完成排序,真正的O(N)复杂度
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
BitMap bm = new BitMap(1000000, 10000);
bm.CreateRandomData();//产生随机数
bm.Sort();//排序
bm.PrintDataAfterSort();//输出
Console.ReadLine();
}
}
class BitMap
{
public int DateLenth;
public int MaxNumber;
public int[] DataForStore;
public int[] DataForSort;
/// <summary>
///
/// </summary>
/// <param name="datelenth">带排序个数</param>
/// <param name="maxnumber">带排序最大数</param>
public BitMap(int datelenth, int maxnumber)
{
DateLenth = datelenth;
MaxNumber = maxnumber;
DataForStore = new int[maxnumber];
}
/// <summary>
/// 产生随机数,便于测试
/// </summary>
public void CreateRandomData()
{
Random r = new Random();
DataForSort = new int[DateLenth];
for (int i = 0; i < DateLenth; i++)
{
DataForSort[i] = r.Next(MaxNumber);
}
}
/// <summary>
/// 排序
/// </summary>
public void Sort()
{
for (int i = 0; i < DateLenth; i++)
{
DataForStore[DataForSort[i]]++;
}
}
/// <summary>
/// 输出排序后的数据
/// </summary>
public void PrintDataAfterSort()
{
for (int i = 0; i < MaxNumber; i++)
{
for (int j = 0; j < DataForStore[i]; j++)
{
Console.Write(i+",");
}
}
}
}
}
分享到:
相关推荐
标题中的“博客https://blog.csdn.net/weixin_49457347/article/details/1236所需文件”表明这是一个与特定博客文章相关的压缩包,但没有提供足够的信息来直接解释博客的内容。从描述中也无法获取更多细节,它只是...
+viewpager+listview(adapterview)recyclerview scrollview webviewblog//blog.csdn.net/w7822938/article/details/47173047/demo-apk,可30452;
使用java语言,快速入门酷Q机器人编写。,快速入门,快速入门。 运行步骤: 1.必须依赖环境酷Q,然后安装插件CQP_HTTP ,启动运行即可 2.运行Java代码类:Mydemo1 3.QQ发送消息给登录酷Q的号 4.效果图如博客所示
请下载 https://download.csdn.net/download/yangxin_blog/12541459 基于xml的简单数据库的登录和注册,全部源代码在这里。 能够实现基本用户登录和注册的功能, 主要是基于xml进行存储和读取,都是学校的一些demo
技术精品文章,请访问CSDN博客:http://blog.csdn.net/ 全球最大的中文技术讨论区,请访问CSDN论坛:http://bbs.csdn.net/ 分享您认为最好的内容,请访问CSDN网摘:http://wz.csdn.net/ IT企业觅人才,个人找...
https://blog.csdn.net/a6661314/article/details/124358796的实验文件
技术精品文章,请访问CSDN博客:http://blog.csdn.net/ 全球最大的中文技术讨论区,请访问CSDN论坛:http://bbs.csdn.net/ 分享您认为最好的内容,请访问CSDN网摘:http://wz.csdn.net/ IT企业觅人才,个人找工作,请...
https://blog.csdn.net/ljw_study_in_CSDN/article/details/108484853 配套excel原始数据
Predict if the car purchased at the Auction is a good bad buy The dependent variable IsBadBuy is binary C2 There are 32 Independent variables C3 C34
基于FPGA的数字钟万年历Verilog资料合集,包含源码工程、仿真工程、视频教程、原理图PCB图,是FPGA经典案例系列博客的其中资源之一,系列博客地址:https://blog.csdn.net/qq_33486907/article/details/118653742 ...
使用Weka语料库时需要用到的源文件,详情:http://blog.csdn.net/quantum_bit/article/details/44665555
主要讲述以http://blog.csdn.net/LCL_data/archive/2009/12/09/4974499.aspx中的链表逆序为模板来讲述指针的使用
图像对比,博客https://blog.csdn.net/bigdata1994pb/category_11750065.htm图像对比,博客https://blog.csdn.net/bigdata1994pb/category_11750065.htm
简单的学生信息管理系统,实现对用户类型的不同权限管理(增删改查). 文章介绍:https://blog.csdn.net/qq_56886142/article/details/122740969?spm=1001.2014.3001.5501
http://blog.csdn.net/zhangerqing/article/details/8239539 https://my.oschina.net/viakiba/blog/795797
https://download.csdn.net/download/qq_43371778/12172290 毕业答辩PPT模版 毕业论文答辩ppt模板将近40套(2).zip https://download.csdn.net/download/qq_43371778/12172293 毕业答辩PPT模版 毕业论文答辩ppt...
位域代码 https://blog.csdn.net/qq_37218325/article/details/124859379
详情看我的我的文章https://blog.csdn.net/wsxybz/article/details/128486717
JQuery基础教程之前言和前三章:http://download.csdn.net/source/745869 JQuery基础教程之第四章:http://download.csdn.net/source/745907 JQuery基础教程之第五章:http://download.csdn.net/source/745975 JQuery...
用来补充paddle-ocr2.6的头文件,进行编译 参考博客链接:https://blog.csdn.net/Helloorld_1/article/details/130217468?spm=1001.2014.3001.5502