`
cywhoyi
  • 浏览: 421003 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

基点排序

    博客分类:
  • JAVA
阅读更多

身份证号码都固定住,完全可以采纳基点排序的方式,

归纳下基点排序复杂度,首先O(n+d),它没办法如同其他快排、冒泡等在不开辟额外空间的情况下进行自我排序,但是也没有归并排序等开辟如此大空间度。

适应的应用场景比较具有局限性,恰巧在公司的一组固定长度的排序过程中,有很好的解决方式。

主要用是通过bucket的概念,把数组迁移后,进行重排的过程,我的代码比较不够严谨,主要是能够帮我理清思路,

假设有 "672", "181", "363", "720" 

第一次

bucket[0]:720
bucket[1]:181
bucket[2]:672
bucket[3]:363

 结果:720、181、672、363

第二次

bucket[2]:720
bucket[6]:363
bucket[7]:672
bucket[8]:181

 结果:720、363、672、181

第三次

bucket[1]:181
bucket[3]:363
bucket[6]:672
bucket[7]:720

 最终结果:181、363、672、720

package com.butterfly.nioserver;

/**
 * 
 * @author young
 *
 */
public class Sort {

	public static void main(String[] args) {
		String[] arr = { "672", "181", "363", "720" };
		int leng = 3;
		int count = 0;

		while ((leng - count) > 0) {
			String[] buckets = new String[10];
			for (int val = 0; val < arr.length; val++) {
				// 余数
				int remainder = Integer.valueOf(arr[val].substring(leng - count
						- 1, leng - count));
				buckets[remainder] = arr[val];
			}

			int j = 0;
			for (int b = 0; b < buckets.length; b++) {
				if (buckets[b] != null) {
					arr[j] = buckets[b];
					j++;
				}
			}
			count++;
		}
		for (String string : arr) {
			System.out.println(string);
		}

	}

}

 

 

 

0
0
分享到:
评论

相关推荐

    数据结构实现快速排序研究.docx

    快速排序一、概念及其介绍快速排序由 C. A. R. Hoare 在 1960 年提出。... 如何和把选定的基点数据挪到正确位置上,这是快速排序的核心,我们称为 Partition。过程如下所示,其中 i 为当前遍历比较的元素位置:

    嵌入式数据结构实现快速排序研究方式.docx

    随机化快速排序一、概念及其介绍 快速排序由 C. A.... 如何和把选定的基点数据挪到正确位置上,这是快速排序的核心,我们称为 Partition。过程如下所示,其中 i 为当前遍历比较的元素位置: 这个 par

    数据结构课设答辩.pptx

    第六种算法是快速排序,它通过选择基点,右边查找比基点小的数停止,再从左边查找比基点数大的数停住,来实现排序。该算法的难点在于如何选择合适的基点,解决方法是使用随机选择基点。 最后一种算法是归并排序,它...

    基于相对压力的煤矿通风阻力测定数据处理方法

    针对采用气压计基点法获得的煤矿通风阻力测定数据误差较大、现有原始测定数据处理方法的修正过程较繁琐的问题,提出了一种基于相对压力的煤矿通风阻力测定数据处理方法。该方法首先选取煤矿某入井井口作为相对压力...

    一种基于双基点复合物元法的装备维修保障系统评估方法 (2008年)

    将几类保障系统作为物元事物,在确定理想物元和负理想物元的基础上,采用专家经验和熵权法相结合的方法确定各评价指标的权重系数,通过计算相对于双基点的关联度对评价对象进行排序。理论研究和实例分析表明,该方法...

    山大数据结构真题

    - 题目给出了一个无序数组,并选取第一个元素作为基点进行一趟排序后的顺序。这里可能是指基于选择排序的思想,首先将数组的第一个元素与数组中最小的元素交换,从而实现一次排序。 #### 七、拓扑排序及其应用 - ...

    GRID体积计算1

    如果夹角相同,选择离基点最远的点,形成排序后的点集O。这个排序的目的是为了后续生成凸包多边形。 3. **生成凸包多边形**: - **初始化**:从排序后的点集中取出前三个点P0, P1, P2,将P0, P1, P2压入栈S。 - *...

    山东大学软件学院2014-2015数据结构真题1

    6. **快速排序**:给定无序数组,选择第一个元素作为基点进行快速排序,一趟排序后的顺序取决于划分策略和元素分布。 7. **图的拓扑排序**:给定有向图,添加一条边以确保唯一拓扑序列。拓扑排序是将有向无环图的...

    TOPSIS模型具体步骤及代码.zip

    “双基点法”也称作TOPSIS(Technique for order Preference by Similarity to idealsolution)法,它可用来 解决社会经济和工程技术领域经常遇到的一类多指标多方案的评价与排序问题。在备选方案集中,根据 指标性质...

    java学生成绩管理系统源码.zip

    (3)按学生学号计算基点成绩,计算规则参考长春工业大学学分基点计算规则。 (4)按照某门课程学生成绩排序 (5)某门课程最高、最低成绩的学生基本信息 (6)计算某门课程的平均分 (7)建立用户及授权

    论文研究-多属性决策的TOPSIS夹角度量评价法.pdf

    论文研究-多属性决策的TOPSIS夹角度量评价法.pdf, ...利用被评价方案与理想解和负理想解的夹角,定义了一种新的与理想解的贴近度,据此给出了一种新的综合排序法,并将此法与TOPSIS法做了对比,得到了好结果.

    Excel操作技巧培训讲义.ppt

    1. 数据排序:可以按照升序或降序简单排序,或者进行多列排序和笔画排序。 2. 数据筛选:利用条件筛选功能,筛选出满足特定条件的数据。 3. 数据分析:使用数据透视表进行复杂的数据汇总和分析,以及使用公式和函数...

    open!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    - 提供按字母排序的函数列表,方便查找。 ### 例子列表 - 提供具体的应用示例,帮助用户更好地理解和使用库中的函数。 ### 常用数据类型 #### CvPoint - **定义**:基于二维整型坐标轴的点。 - **成员变量**: - ...

    基于生长算法构建Delaunary三角网

    1. **初始化:**首先选取一个离散点作为初始基点,然后按照点到基点的距离排序其余的离散点。接着,选择距离最近的几个点形成一个初始凸包,并构建出由这些点构成的初始三角网。这个初始三角网的外轮廓就是最初的...

    20210429_叶鑫_论文展示 1

    通过构建长期短仓策略,即基于领导者过去10年的平均回报对滞后企业进行排序,研究发现统计上显著的三因子超额收益,最高可达76个基点每月。 实证检验: 为了验证这一假设,论文进行了严谨的测试,包括封闭形式的...

    全国中学生语文能力竞赛样题.doc

    - 引用古诗激发学生的联想,要求学生能通过诗句理解诗人的情感,如"日出江花红胜火,春来江水绿如蓝",并以此为基点表达对家乡或国家的热爱之情。 4. **对联创作**: - 对联是中国传统文化的体现,考察学生的对仗...

    全国青少年软件编程(Python)等级考试试卷(一级)优质程序填空阅读填空程序试题.docx

    的和的程序中,t的初始值赋为1是因为1是阶乘运算的基点,t*t初始化为1,然后乘以n,逐次累加到s中。 - t*=n的等价语句是`t = t * n`。 - s+=t的等价语句是`s = s + t`。 2. **调试程序** - 给定的程序会打印出...

    网蜂CAD工具箱2.0

    1、修改坐标标注中参考基点在自定义坐标后,标注当前及世界坐标系中显示错误的BUG 2、修改坐标标注中若CAD中UCS为自定义时且与WCS有角度时,标注方向不正确的BUG V2.027 2010.4.5 1、修改承台绘制-承台库中常规列...

Global site tag (gtag.js) - Google Analytics