珠排序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,两…
---恢复内容开始--- 算法说明 珠排序是分布排序的一种. 说实在的,这个排序看起来特别的巧妙,同时也特别好理解,不过不太容易写成代码,哈哈. 这里其实分析的特别好了,我就不画蛇添足啦.  大家看一下这个分析,特别特别简单的. 然后我对于下面的代码做一下描述: 1.找到数组的最大值(20-23行代码) 2.创建珠排序的容器,并且进行初始化(28-34行代码) 3.进行排序(39-44行代码),这里是珠排序的核心,也不太好解释,所以还是举例子啦. 例如排序的数组是int[] arr = { 2,…
很早之前便听说过地精排序的名字,今天自己看来一下,发现这是一种非常简单而且有趣的排序算法. 为什么叫地精排序? 地精排序在2000年由Dr. Hamid Sarbazi-Azad 提出的时候被称作 stupid sort,可见其思想的简单性.后来,这个算法被Dick Grune 描述成地精排序Gnome sort. 故事背景: Here is how a garden gnome sorts a line of flower pots.  Basically, he looks at the f…
一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a','have','I'])) #['I', 'have', 'a', 'dream'] 2.让人糊涂的sort()与sorted() 在Python 中sorted是内建函数(BIF),而sort()是列表类型的内建函数list.sort(). sorted() sorted(iterable[,…
Unix和Linux自带的sort命令功能非常强大,其主要功能是对文本内容按不同的方法排序.它不仅可以按一个或多个字段排序,还可以合并文件.使用sort处理一些较大的文件时,可能处理速度会比较慢,但却非常有效. 命令格式: sort [option] [file] sort处理的文本可以来自一个文本文件,也可以来自标准输入和管道等. 常用选项: b:按字典顺序进行排序,忽略前面的空格或制表符. d:按字典顺序进行排序,将除空格和字母以外的字符排除. f:忽略大小写. g:根据数值进行排序,默认从…
问题描述:        C++排序函数sort/qsort的使用 问题解决:           (1)sort函数使用   注:           sort函数,参数1为数组首地址,参数2是数组尾地址,参数3是比较函数          (2)qsort函数 注:            使用qsort函数(快速排序),参数1为数组首地址,参数2为数组长度,参数3为各元素占用空间,参数4为比较函数 qsort使用需要添加头文件#include<stdlib.h>        (3)qso…
希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进.该方法又称缩小增量排序,因DL.Shell于1959年提出而得名. 希尔排序实质上是一种分组插入方法.它的基本思想是:对于n个待排序的数列,取一个小于n的整数gap(gap被称为步长)将待排序元素分成若干个组子序列,所有距离为gap的倍数的记录放在同一个组中:然后,对各组内的元素进行直接插入排序. 这一趟排序完成之后,每一个组的元素都是有序的.然后减小gap的值,并重复执行上述的分组和排序.重复这样的操作,当gap…
想起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qsort,总算把自己解脱了~ 所以自己总结了一下,首先看sort函数见下表: 函数名 功能描写叙述 sort 对给定区间全部元素进行排序 stable_sort 对给定区间全部元素进行稳定排序 partial_sort 对给定区间全部元素部分排序 partial_sort_copy 对给定区间复制并排序 nth_element 找出给定区间的某个位置相应的元素 is_sorted 推断一个区间是否已经排好序 p…
经典排序算法 - 高速排序Quick sort 原理,通过一趟扫描将要排序的数据切割成独立的两部分,当中一部分的全部数据都比另外一部分的全部数据都要小,然后再按此方法对这两部分数据分别进行高速排序,整个排序过程能够递归进行,以此达到整个数据变成有序序列 举个样例 如无序数组[6 2 4 1 5 9] a),先把第一项[6]取出来, 用[6]依次与其余项进行比較, 假设比[6]小就放[6]前边,2 4 1 5都比[6]小,所以所有放到[6]前边 假设比[6]大就放[6]后边,9比[6]大,放到[6…
选择排序(Selection sort)跟插入排序一样,也是O(n^2)的复杂度,这个排序方式也可以用我们的扑克牌来解释. 概念 桌面上有一堆牌,也是杂乱无章的,现在我们想将牌由小到大排序,如果使用选择排序来做,应该是这样来做. 遍历桌面牌堆里的牌,从第一张牌到最后一张,找到牌面最小的一张,然后将抽出,并扣在手上. 第二次遍历桌面牌堆里的牌,从第一张牌到最后一张,仍然去找现在桌面上牌面最小的一张,找出来,还是扣在手上. 第三次遍历--重复步骤.虽然桌面上的牌是无序的,但是我们扣在手上的牌是有序的…