asp.net 珠排序

珠排序(Bead sort) — O(n) or O(√n),

在排序的世界里 珠排序属于不实用的排序算法排序 原因是珠排序和硬件的依赖关系大,

目前网上只有一个c语言的版本 用指针做的闲来无聊研究一下此排序算法,并优化写出c#版本的给大家分享

现有 数组 198752 排序结果肯定是125789啦

珠排序的步骤是

X                              1

XXXXXXXXX              9

XXXXXXXX                8

XXXXXXX                  7

XXXXX                      5

XX                            2

垂直排序后(按重力落下)

X            1

XX                            2

XXXXX                      5

XXXXXXX                  7

XXXXXXXX                8

XXXXXXXXX              9

也就是 125789排序好了

理论知道了,写出算法这就不简单了

既然计算机存储排序集合我们还得做运算 那么把X最多的看成行 集合的个数看成列

得到一个表(X,Y)的二维数组 我们需要优化此算法 所以我们应该在遍历数组时保证所有操作都在仅一次过程就得出结果的效率是最高的

那么上代码。

大体思路是这样把数组看成一个二维表 当插入数字的时候把数字分解成1   例:3=111  2=11

插入 198752 步骤

插入1得到 100000000   其实就是给newArr[0][0]插入了1,0是实例化初始值 不用插入

插入9细细讲解{插入9操作其实就是

000000000   变    111111111

100000000          100000000

第一步 9=11111111  拆成 一次插入一个1

000000000   变    100000000

100000000          100000000

判断X轴index=0的列

newArr[0][0]是1  newArr[0][1]目前为0 那么位置为 newArr[0][1]    那么在这插入1变成

同理再插入

000000000   变    110000000

100000000          100000000

这时 判断X轴index=1的列

newArr[1][0]是0   那么位置为 newArr[1][0]    结果变成了

110000000   变    100000000

100000000          110000000

继续把此行(值为9的)所有的位置都查 完最后就变成了

100000000   变    100000000

110000000          111111111

继续走 插入值为8的得到

000000000  变   011111111

100000000        100000000

111111111        111111111

判断X=1-9插入位 分别为 [1][1] [2][1] [3][1] [4][1] [5][1] [6][1] [7][1] [8][1]

插入后得到

000000000  变   000000000

100000000        111111111

111111111        111111111

}

这就实现了定位插入一个造作流程 此排序最后得到的结果为

这段程序为第一版本 今天刚写的 滑落部分代码可以用二分法提高性能 后期再修改

需要源码加QQ:792801526 老田

asp.net 珠排序

时间: 2024-10-28 19:26:15

asp.net 珠排序的相关文章

珠排序Bead Sort

珠排序非常另类[地精也很另类],看完你就知道了,先介绍思路,再分解过程 这是它的英文论文 http://www.cs.auckland.ac.nz/~jaru003/research/publications/journals/beadsort.pdf 截图即从上边的论文里抓的屏 先了解一个概念,不然不容易理解,一个数字3用3个1来表示 一个数字9用9个1来表示,珠排序中的珠指的是每一个1,它把每一个1想像成一个珠子,这些珠子被串在一起,想像下算盘和糖葫芦 图1 上图1中的三个珠就表示数字3,两

经典排序算法 - 珠排序Bead Sort

经典排序算法 - 珠排序Bead Sort 珠排序非常另类[地精也很另类],看完你就知道了,先介绍思路,再分解过程 这是它的英文论文 http://www.cs.auckland.ac.nz/~jaru003/research/publications/journals/beadsort.pdf 截图即从上边的论文里抓的屏 先了解一个概念,不然不容易理解,一个数字3用3个1来表示 一个数字9用9个1来表示,珠排序中的珠指的是每一个1,它把每一个1想像成一个珠子,这些珠子被串在一起,想像下算盘和糖

asp.net core 排序过滤分页组件:sieve(1)

使用asp.net core开发时避免不了要用一个合适的分页组件来让前端获取分页数据.github上面有一个开源的分页组件在这方面很适合我的使用,于是我把他的文档翻译一下,随后会分析它里面的源码.这是第一篇,介绍它如何使用. Sieve Sieves是一个.net core下面的简单.干净并且可扩展的框架,它对外暴露了排序,过滤和分页的功能. ASP.NET Core下的使用方式 在本例中,考虑一个带有Post实体的应用程序.在获取所有可用的帖子时,我们将使用Sieve添加排序.过滤和分页功能.

ASP.Net MVC4排序检索分页的实现

前言 上一节我们做到了如下的一个基础查询页面.本节我们向这个页面中加入排序.搜索和分页功能. 排序 从上图中的地址栏中可以看到这个页面调用的是Company Controller下的Index Action.因此我们就先打开Controllers文件夹下的CompanyController.cs文件,写入如下代码: 1 using System.Linq; 2 using System.Web.Mvc; 3 using SlarkInc.DAL; 4 using System; 5 6 name

经典排序算法

经典排序算法(via  kkun) 经典排序算法,以下文章参考了大量网上的资料,大部分都给出了出处 这一系列重点在理解,所以例子什么的都是最简单的情况,难免失误之处,多指教 大多数排序算法都给出了每一步的状态,以方便初学者更容易理解,通俗易懂,部分难以理解的排序算法则给出了大量的图示,也算是一个特色吧 经典排序算法 - 快速排序Quick sort 经典排序算法 - 桶排序Bucket sort 经典排序算法 -  插入排序Insertion sort 经典排序算法 - 基数排序Radix so

排序算法总结----比较类排序

概述:排序算法可分为比较性的排序,以及运算性的排序:这里详细介绍这些排序的原理,性能,实现,以及应用场合. 前面是维基百科的介绍,这里介绍几个比较典型的算法. 理论 计算复杂性理论 大O符号 全序关系 列表 稳定性 比较排序 自适应排序 排序网络 整数排序 交换排序 冒泡排序 鸡尾酒排序 奇偶排序 梳排序 侏儒排序 快速排序 臭皮匠排序 Bogo排序 选择排序 选择排序 堆排序 Smooth排序 笛卡尔树排序 锦标赛排序 循环排序 插入排序 插入排序 希尔排序 二叉查找树排序 图书馆排序 Pat

排序算法总结----运算类排序

运算排序 第一:计数排序 1:原理 对于每个输入数,确定小于该数的个数.这样可以直接把数放在输出数组的位置. 2:性能 最差时间复杂度 最优时间复杂度 平均时间复杂度 最差空间复杂度 注:稳定算法 3:应用 适合0~100的范围的数,当然可以和基排序结合而扩展数的范围. 4:实现 void CountingSort(int *A, int *B, int array_size, int k) { int i, value, pos; int * C=new int[k+1]; for(i=0;

排序之概述

※.很多发布年代不清楚,如果你知道,如果你愿意,不妨告诉我和大家(包括这里没有列举且你认为有必要列举的). 根据排序过程中涉及的存储器不同,可以将排序方法分为分内部排序和外部排序.在内部排序中,根据排序过程中所依据的原则可以分为5类:插入排序.交换排序.选择排序.归并排序和基数排序:根据排序过程的时间复杂度来分,可以分为三类:简单排序.先进排序.基数排序. 评价排序算法优劣的标准主要是两条:一是算法的运算量,这主要是通过记录的比较次数和移动次数来反应:另一个是执行算法所需要的附加存储单元的的多少

排序算法复杂度

转自:http://blog.csdn.net/xiexievv/article/details/45795719 在计算机科学所使用的排序算法通常被分类为: 计算的时间复杂度(最差.平均.和最好性能),依据列表(list)的大小(n).一般而言,好的性能是O(n log n),且坏的性能是O(n2).对于一个排序理想的性能是O(n).仅使用一个抽象关键比较运算的排序算法总平均上总是至少需要O(n logn). 存储器使用量(以及其他电脑资源的使用) 稳定性:稳定排序算法会让原本有相等键值的纪录