iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何使用批处理解决数值排序问题
  • 703
分享到

如何使用批处理解决数值排序问题

2023-06-08 15:06:22 703人浏览 泡泡鱼
摘要

这篇文章将为大家详细讲解有关如何使用批处理解决数值排序问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。a.txt中有20行随机产生的数列,如下: 2928326128601232462131283250

这篇文章将为大家详细讲解有关如何使用批处理解决数值排序问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

a.txt中有20行随机产生的数列,如下:
2928326128601232462131283250710027308938740594716691200992050511576
5352129649530193383124730478244772348721985707222557212265817305
217141333532296179938475175265792931789219830308392472584606305
2371620291160322081050531817416284225477019123161801285941026814244
283929972304551060318886921731765136928849135391662294051194618754
1809165929787147057932949630411324311737224509104016550662932273
27396236084901303873154718299242931819623155304661177528921164510335
254221462410491137971033914630292752245114969186002809930190939425
1085287492160525651862932475207612387312368408826675135332406418337
2567810118246621010283281198810903279355871571118961177731143829148
23727111515524141721964179351992331180134926914198081871053303186
378579502856625703213542353218420835730692264021219729654278515442
30215186011014395001656818458819061824708536511543271701327524725
223702764213159156022932717903282522044350522584222768193271431422354
3079720530119542370417125702274761144023302102641160114921224469221
15642298214000242538839193816839550322381321993212316517861828002
13042178002978222022331319116624809338275899045263351248023569
11252165681825711849278422768716060438517976169102391532289954712000
105084292396529699311371735329685626410510259482788519645152723476
29674179062831103792824121564178225289202161443911094228581583531951
要求通过纯批处理按照数列的大小顺序,正序输出如下:
13042178002978222022331319116624809338275899045263351248023569
217141333532296179938475175265792931789219830308392472584606305
1809165929787147057932949630411324311737224509104016550662932273
5352129649530193383124730478244772348721985707222557212265817305
15642298214000242538839193816839550322381321993212316517861828002
23727111515524141721964179351992331180134926914198081871053303186
30215186011014395001656818458819061824708536511543271701327524725
105084292396529699311371735329685626410510259482788519645152723476
254221462410491137971033914630292752245114969186002809930190939425
283929972304551060318886921731765136928849135391662294051194618754
378579502856625703213542353218420835730692264021219729654278515442
1085287492160525651862932475207612387312368408826675135332406418337
2371620291160322081050531817416284225477019123161801285941026814244
2567810118246621010283281198810903279355871571118961177731143829148
2928326128601232462131283250710027308938740594716691200992050511576
3079720530119542370417125702274761144023302102641160114921224469221
11252165681825711849278422768716060438517976169102391532289954712000
27396236084901303873154718299242931819623155304661177528921164510335
29674179062831103792824121564178225289202161443911094228581583531951
223702764213159156022932717903282522044350522584222768193271431422354
 
每行的数值都远远超过了cmd所能计算的最大数值。
要求,正确输出,不生成临时文件,代码高效通用。完成题目,视思路加分。
batman:
先说明下思路:
  此题确实是出给我们的一大难题,为什么这要说呢?楼主要求的是文本内所有超大数值的排序,
所有的数值都远远超过了cmd所能运算的最大数值,用常规的比较法都是行不通的这是难点之一;
第二这些数值是随机生成的且字符总数不定,甚至可能达到数行和数十行之长,如采用逐字符判断
的方法来确实行最大字符数,效率将会是此类方案所无法逾越的障碍;第三楼主要求不生成临时文
件,这对用findstr /o来获取行最大字符的方案来讲,无疑是上了大门。
  综上所述总结如下:
  代码要通用就要获取行最大字符数,一种方法是逐字符法,用逐字符法效率上就存在很大问题;
第二种方法是使用findstr /o一次性获取每行字符偏移量,再通过处理获得行最大字符数,效率上比
逐字符法是高多了,但因为单用findstr /o是不能获得文本行未行字符偏移量的,必须要对未行强加
回车,在不破坏原文件的情况下就要用到临时文件。
  而我们写代码时一般遵循四条原则:高效率、通用、简洁、尽量不生成临时文件,其中首要的
一条就是高效,其次是通用,至于简洁和有无临时文件都不是主要考虑因素,所以依此主次关系我
给出以下两种方案:
一、通用性差一点(数值字符都在一行内是绝对没问题的),效率高,代码简洁,无临时文件:
@echo off&setlocal enabledelayedexpansion
for /l %%i in (1,1,80) do set "kong=!kong!#"
for /f %%i in (1.txt) do (
set "str=%%i%kong%"
set "a=!str:~,80!"
set "a=!a:%%i=!"
set "_!a!%%i=a"
)
for /f "delims==_" %%i in ('set _') do (
set "str=%%i"
echo !str:#=!
)
pause>nul
二、通用性极高,效率一般,生成临时文件,代码较复杂:

代码如下:


@echo off&setlocal enabledelayedexpansion
set "max=0"&set "a=0"
for /f %%i in (1.txt) do echo %%i>>2.txt
echo.>>2.txt
for /f "tokens=1,2* delims=:" %%i in ('findstr /n /o .* 2.txt') do (
set /a n+=1,m=n-1
set "num=%%i"&set "_!n!=%%j"&set "#%%i=%%k"
if !m! gtr 0 set /a a=_!n!-_!m!-2
if !max! lss !a! set "max=!a!"
)
set /a num-=1
for /l %%i in (1,1,%max%) do set "kong=!kong!#"
for /l %%i in (1,1,%num%) do (
set "str=!#%%i!%kong%"
set "a=!str:~,%max%!"
call,set "a=%%a:!#%%i!=%%"
set ".!a!!#%%i!=a"
)
for /f "delims==." %%i in ('set .') do (
set "str=%%i"
echo !str:#=!
)
del /q 2.txt&pause>nul


 
pusofalse:

代码如下:


@echo off&setlocal enabledelayedexpansion
set m=0
for /f "tokens=1,* delims=:" %%a in ('findstr/o .* 1.txt') do (
set/a n+=1,l=n-1,y+=1
set ..!n!=%%a
set ##!y!=%%b
if !n! geq 2 (
call,set/a s=%%..!n!%%-%%..!l!%%-2,line+=1
call,set "_!s!=%%_!s!%%%%##!line!%% "
if !s! geq !m! set m=!s!
)
)
for /f "skip=1 delims=:" %%a in ('^(echo !##%y%!^&echo.^)^|findstr/o .*') do set/a final=%%a-3
call,set "_%final%=%%_!final!%% !##%y%!"
if %final% geq !m! set m=%final%
for /l %%a in (1 1 %m%) do (
if defined _%%a (
for %%i in (!_%%a!) do set -%%i=faith
for /f "delims=-=" %%s in ('set -') do (
echo %%s
set "-%%s="
)
)
)
pause>nul

关于“如何使用批处理解决数值排序问题”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: 如何使用批处理解决数值排序问题

本文链接: https://www.lsjlt.com/news/254521.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用批处理解决数值排序问题
    这篇文章将为大家详细讲解有关如何使用批处理解决数值排序问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。a.txt中有20行随机产生的数列,如下: 2928326128601232462131283250...
    99+
    2023-06-08
  • 编程开发中如何解决数值排序的问题
    这篇文章主要为大家展示了“编程开发中如何解决数值排序的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“编程开发中如何解决数值排序的问题”这篇文章吧。出题目的: 掌握任意数列之间的排序技巧 解题...
    99+
    2023-06-08
  • Mysql8.0使用窗口函数解决排序问题
    MySQL窗口函数简介 MySQL从8.0开始支持窗口函数,这个功能在大多商业数据库和部分开源数据库中早已支持,有的也叫分析函数。 什么叫窗口? 窗口的概念非常重要,它可以理解为记录集合,窗口函数也...
    99+
    2022-10-18
  • 如何批处理解决IE不支持JavaScript等问题
    这篇文章主要介绍“如何批处理解决IE不支持JavaScript等问题”,在日常操作中,相信很多人在如何批处理解决IE不支持JavaScript等问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何批处理解决...
    99+
    2023-06-09
  • 如何在java中使用分治法中的快速排序解决排序问题
    问题描述:输入一个数字N后,输入N个数字,将N个数字排序后输出。输入:输出:算法设计:快速排序的基本思想是基于分治策略的,其算法思想如下:(1)分解:先从数列中取出一个元素作为基准元素.以基准元素为标准,将问题分解为两个子序列,使小于或等于...
    99+
    2021-12-23
    java基础 java 分治法 快速排序
  • 如何解决PHP中数组的排序和打乱问题
    这篇文章主要介绍“如何解决PHP中数组的排序和打乱问题”,在日常操作中,相信很多人在如何解决PHP中数组的排序和打乱问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何解决PHP中数组的排序和打乱问题”的疑...
    99+
    2023-06-25
  • 如何用itertools解决无序排列组合的问题
    最近我作为Python菜鸟一枚开始征战Codewars,所以打算在这里记下遇到的有意思的题目。今天这第一题叫做“Best Travel”: John和Mary计划去一些小镇旅行。Mary已经列好了这些小镇之...
    99+
    2022-06-04
    如何用 排列组合 itertools
  • 如何使用Javascript编程来解决大数据处理问题?
    随着数据的不断增加,数据处理已经成为了许多企业和组织面临的一个重大挑战。为了处理庞大的数据集,需要使用一种高效的编程语言和工具来加速数据分析和处理。Javascript是一种流行的编程语言,可以用于处理大型数据集。在本文中,我们将探讨如何...
    99+
    2023-11-11
    编程算法 大数据 javascript
  • 如何使用C#算法解决求第n个数值问题
    这篇文章主要为大家展示了“如何使用C#算法解决求第n个数值问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用C#算法解决求第n个数值问题”这篇文章吧。已知数列:1,1,2,3,5,8,1...
    99+
    2023-06-18
  • 如何使用vbs解决处理TXT文本数据相关问题
    这篇文章主要介绍了如何使用vbs解决处理TXT文本数据相关问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。有个小问题,如下: 现有文本文件1.txt,内容如下: 数值_1出...
    99+
    2023-06-08
  • java使用单向链表解决数据存储自定义排序问题
    目录表设计1. 新增一条记录2. 修改排序3. 删除代码实现1. 简单对象2. 对数据按照 nextId 排序3. 输出结果表设计 CREATE TABLE `test` ( `...
    99+
    2022-11-13
  • 局域网中如何解决批处理闪退、运行中断等问题
    这篇文章主要为大家展示了“局域网中如何解决批处理闪退、运行中断等问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“局域网中如何解决批处理闪退、运行中断等问题”这篇文章吧。一、闪退不要随便修改批处...
    99+
    2023-06-08
  • 如何通过批处理bat解决局域网打印机共享问题
    小编给大家分享一下如何通过批处理bat解决局域网打印机共享问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!公司共享出打印机的电脑基本都是配置比较好的台式电脑充当...
    99+
    2023-06-08
  • JavaScript数据处理的常见问题如何解决
    本篇内容主要讲解“JavaScript数据处理的常见问题如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript数据处理的常见问题如何解决”吧...
    99+
    2022-10-19
  • 如何使用批处理解约瑟夫环应用题
    小编给大家分享一下如何使用批处理解约瑟夫环应用题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!题目:   有二十九个女生(分别用1-29号来称呼)围成一圈玩报数游...
    99+
    2023-06-08
  • springBoot中使用@Value取值出现问题如何解决
    这篇文章主要介绍“springBoot中使用@Value取值出现问题如何解决”,在日常操作中,相信很多人在springBoot中使用@Value取值出现问题如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-07-02
  • 如何解决vue elementUI中table里数字、字母、中文混合排序问题
    小编给大家分享一下如何解决vue elementUI中table里数字、字母、中文混合排序问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去...
    99+
    2022-10-19
  • Java如何解决前端数据处理及乱码问题
    本篇文章为大家展示了Java如何解决前端数据处理及乱码问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、数据处理1. 处理提交数据提交的名称和方法的参数名一致//localhost:8080/u...
    99+
    2023-06-22
  • Mybatis使用concat函数问题如何解决
    这篇文章主要讲解了“Mybatis使用concat函数问题如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mybatis使用concat函数问题如何解决”吧!Mybatis使用conc...
    99+
    2023-07-05
  • 如何使用批处理实现文本最末列数值乘一个数
    这篇文章给大家分享的是有关如何使用批处理实现文本最末列数值乘一个数的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。a.txt 1##4072.0###52.19### #72## # 2#38705.8# # # ...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作