如何对输入参数python sort参数

CMD的sort命令以什么结束?_百度知道
CMD的sort命令以什么结束?
输入Ctrl+Z后回车屏幕是这样的C:\Documents and Settings\Administrator&sort361^Z136
其他类似问题
为您推荐:
提问者采纳
Documents and Settings&#92:&#92输入Ctrl+Z后回车屏幕是这样的C;Administrator&gt
提问者评价
谢谢,你快速又准确的回答!
sort的相关知识
其他4条回答
你按下Ctrl+C键就可以了
sort [ -A ] [ -b ] [ -c ] [ -d ] [ -f ] [ -i ] [ -m] [ -n ] [ -r ] [ -u ] [ -o OutFile ] [ -t Character ] [ -T Directory ] [ -y [ Kilobytes ] ] [ -z RecordSize ] [ [ + [ FSkip ] [ .CSkip ] [ b ] [ d ] [ f ] [ i ] [ n ] [ r ] ] [ - [ FSkip ] [ .CSkip ] [ b ] [ d ] [ f ] [ i ] [ n ] [ r ] ] ] [ -k KeyDefinition ] [文件 ]
sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序。-(减号)代替文件名指定标准输入。如果您不指定任何文件名,那么该命令对标准输入排序。可以使用 -o 标志指定输出文件。
如果不指定任何标志,sort 命令基于当前语言环境的整理...
输入Ctrl+Z后回车屏幕是这样的C:\Documents and Settings\Administrator&sort361^Z136
输入Ctrl+Z后回车 屏幕是这样的 C:\Documents and Settings\Administrator&sort 3 6 1 ^Z 1 3 6
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁JavaScript中sort()排序时传入参数的问题 - 开源中国社区
当前访客身份:游客 [
当前位置:
看JavaScript高级程序设计时候有一个问题:
sort()在传入一个比较方法时候可以实现自定义的排序,书上的代码是
function compare(value1, value2){
if(value1 & value2){
return -1;
}else if(value1 & value2){
var values = [0, 1, 5, 10, 15];
values.sort(compare);
alert(values); //15, 10, 5, 1, 0 这里我还能勉强猜测sort()内部把每数组的每相邻的两个值作为参数传了进来。但是后面有一段代码让我很不能不能理解,也感到了自己的猜测不正确。
function createComparisonFunction(propertyName){
return function(object1, object2){
var value1 = object1[propertyName];
var value2 = object2[propertyName];
if(value1 & value2){
return -1;
}else if(value1 & value2){
var data = [{name : &Zachary&, age : 28}, {name : &Nicholas&, age : 29}];
data.sort(createComparisonFunction(&name&));
alert(data[0].name);
//Nicholas
data.sort(createComparisonFunction(&age&));
alert(data[0].name)
//Zachary 这里object1与object2是怎么与data中的两组数据对应上的?
冰天雪地团身后空翻2周半转体720&C半luogui求。大家帮帮忙吧
共有2个答案
<span class="a_vote_num" id="a_vote_num_
引用来自“JustForFly”的答案 以data.sort(createComparisonFunction(&name&))为例,
data.sort(function(object1, object2){ &&&&&&& var value1 = object1[&name&]; &&&&&&& var value2 = object2[&name&]; &&&&&&& if(value1 & value2){ &&&&&&&&&&& return -1; &&&&&&& }else if(value1 & value2){ &&&&&&&&&&& return 1; &&&&&&& }else{ &&&&&&&&&&& return 0; &&&&&&& } &&& });
object1,object1代表{name :&Zachary&, age : 28} {name :&Nicholas&, age : 29}
那么data.sort(createComparisonFunction(&name&))就是通过比较数组的中的2个对象{name :&Zachary&, age : 28} {name :&Nicholas&, age : 29}的name属性来排序。
类似的data.sort(createComparisonFunction(&age&))就是通过比较数组的中的2个对象{name :&Zachary&, age : 28} {name :&Nicholas&, age : 29}的age属性来排序。
嘿嘿,谢谢~。
我的问题就在于object1为什么代表了{name :&Zachary&, age : 28},或者{name :&Nicholas&, age : 29},没看到显式地给他们关联起来。如果是sort()内部实现的话,我想知道大概怎么实现。如果不是sort()内部实现,我想知道怎么实现问题有点多~不过现在明白一些了。
--- 共有 2 条评论 ---
(3年前)&nbsp&
你可以理解成数组里面存放的都是对象Object,就像javascript里面定义对象,可以用 var o = new Object(); 也可以用 var o = {}; sort()方法只要去偏离data,一个一个的取出数组里面的对象(不论是基本类型,还是Object),将他们赋值给object1和object2,这样就可以轮循去比较他们了。
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
以data.sort(createComparisonFunction(&name&))为例,
data.sort(function(object1, object2){ &&&&&&& var value1 = object1[&name&]; &&&&&&& var value2 = object2[&name&]; &&&&&&& if(value1 & value2){ &&&&&&&&&&& return -1; &&&&&&& }else if(value1 & value2){ &&&&&&&&&&& return 1; &&&&&&& }else{ &&&&&&&&&&& return 0; &&&&&&& } &&& });
object1,object1代表{name :&Zachary&, age : 28} {name :&Nicholas&, age : 29}
那么data.sort(createComparisonFunction(&name&))就是通过比较数组的中的2个对象{name :&Zachary&, age : 28} {name :&Nicholas&, age : 29}的name属性来排序。
类似的data.sort(createComparisonFunction(&age&))就是通过比较数组的中的2个对象{name :&Zachary&, age : 28} {name :&Nicholas&, age : 29}的age属性来排序。
更多开发者职位上
有什么技术问题吗?
Z_wenuw...的其它问题
类似的话题JavaScript中sort()排序时传入参数如何工作?
[问题点数:100分,结帖人guangzhanzb]
JavaScript中sort()排序时传入参数如何工作?
[问题点数:100分,结帖人guangzhanzb]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2012年 总版技术专家分年内排行榜第一2007年 总版技术专家分年内排行榜第二2006年 总版技术专家分年内排行榜第二2004年 总版技术专家分年内排行榜第二
2005年 总版技术专家分年内排行榜第三2003年 总版技术专家分年内排行榜第三2002年 总版技术专家分年内排行榜第三
2013年10月 Web 开发大版内专家分月排行榜第三
2013年5月 总版技术专家分月排行榜第一
2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
2013年5月 总版技术专家分月排行榜第一
2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
2013年5月 总版技术专家分月排行榜第一
2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
2013年3月 Web 开发大版内专家分月排行榜第三
2013年5月 总版技术专家分月排行榜第一
2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
2013年3月 Web 开发大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。DOS命令大全:Sort命令详解
DOS命令大全:Sort命令详解
- DOS命令大全:Sort命令详解
DOS命令大全:Sort命令详解
读取输入、排序数据并将结果写到屏幕、文件和其他设备上。
MS-DOS命令语法
sort [/r] [/+n] [/m kilobytes] [/l locale] [/rec characters] [[drive1:][path1]filename1] [/t [drive2:][path2]] [/o [drive3:][path3]filename3]
[command |] sort [/r] [/+n] [/m kilobytes] [/l locale] [/rec characters] [[drive1:][path1]filename1][/t [drive2:][path2]] [/o [drive3:][path3]filename3]
MS-DOS命令参数
颠倒排序顺序,即从Z 到 A 排序,然后从9 到 0 排序。
指定字符位置号 n,sort 在此处开始每次比较。
/m kilobytes
指定用于排序的主内存数量,按千字节 (KB) 计。
替代由系统默认区域设置(即在安装时选择的语言和“国家(地区)”)定义的字符排序顺序。
/rec characters
指定记录或输入文件的行中的最多字符数(默认值为 4096,最大值为 65535)。
[drive1:][path1]filename1
指定要排序的文件。如果没有指定文件名,则对标准输入排序。指定输入文件比将同一文件作为标准输入重定向速度快。
/t [drive2:][path2]
指定保留 sort 命令工作存储的目录路径,防止数据不能装入主内存。默认为使用系统临时目录。
/o [drive3:][path3]filename3
指定要存储排序后的输入的文件。如果没有指定,数据将写入标准输出。指定输出文件比将同一文件作为标准输出重定向速度快。
在命令提示符显示帮助。
MS-DOS命令注释
使用 /+n 命令行选项
例如,使用 /+n 命令行时,/+3 表示每个比较应该在每行的第三个字符开始。少于 n 个字符的行在其他行之前排序。默认情况下,比较在每行的第一个字符开始。
使用 /m kilobytes 命令行选项
使用的内存最小值总是 160 KB。如果指定了内存大小,则无论有多少主内存可用,指定的确切数量(但至少 160 KB)的内存将用于排序。
如果输入输出均为文件,在没有指定大小时,默认最大内存大小为可用主内存的 90%,否则为主内存的 45%。默认设置通常会产生最佳的性能。
使用 /l locale 命令行选项
目前,默认区域设置唯一的备用选项就是“C”区域设置,该区域设置比自然语言排序快,根据二进制编码对字符排序。
除非指定了 command 或 FileName 参数,否则,sort 将作为筛选器使用,并从标准输入(通常从键盘、管道或文件)获得输入。
将重定向符号与排序一起使用
可以使用管道 (|) 符号通过 sort 命令从其他命令定向数据,或者将排序输出定向到另一个命令(例如定向到 more 命令,以便一次显示一个屏幕的信息)。使用小于号 (&) 或大于号 (&) 指定输入文件或输出文件可能效率不很高;应该直接指定输入文件(如命令语法中定义),并使用 /o 参数指定输出文件。这样速度会更快,特别对于大文件。
大写和小写
sort 命令不区分大小写字母。
文件大小的限制
sort 命令对文件大小没有限制。
排序程序使用与“国家(地区)”代码和代码页设置对应的排序序列表。大于 ASCII 代码 127 的字符根据 Country.sys 文件或 Config.nt 文件的 country 命令指定的备用文件中的信息排序。
内存的使用
如果排序适合内存(默认的最大内存或 /m 参数指定的内存大小),则该排序仅以一个周期执行。否则,将以两个周期执行排序,以便用于排序和合并周期的内存数量相等。执行了两个周期后,部分排序的数据存储在磁盘的临时文件中。如果内存不足以以两个周期执行排序,则会出现运行时错误。如果 /m 选项用来指定比实际可用内存更多的内存,则会出现性能下降或运行时错误。
MS-DOS命令范例
以下命令读取文件 Expenses.txt,以倒序排序该文件并显示在屏幕上:
sort /r expenses.txt
对命令输出排序
要在名为 Maillist.txt 的大文件中搜索文本“Jones”,并排序搜索结果,请使用管道 (|) 将 find 命令的输出定向到 sort 命令,如下所示:
find &Jones& maillist.txt | sort
该命令产生包含指定文本的行的排序列表。
对键盘输入排序
要排序键盘输入并按字母顺序在屏幕上显示结果,可以先使用不包含参数的 sort 命令,如下所示: sort
然后键入要排序的文本,在每一行的结尾按回车键。键入完文本后,按 CTRL+Z,然后按回车。sort 命令将显示您键入的文本,并按字母顺序排序。
也可以将排序后的键盘输入重定向到文件。有关的详细信息,请单击“相关主题”列表中的 redirect。
上一页: 下一页:
- DOS命令大全:Sort命令详解
版权所有 &  证书:粤ICP备号trackbacks-0
一.qsort()函数
功 能: 使用快速排序例程进行排序
头文件:stdlib.h
用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
参数: 1 待排序数组首地址
2 数组中待排序元素数量
3 各元素的占用空间大小
4 指向函数的指针,用于确定排序的顺序
qsort(即,quicksort)主要根据你给的比较条件给一个快速排序,主要是通过指针移动实现排序功能。排序之后的结果仍然放在原来数组中。
其中qsort和compare的用法如下:
void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )
int compare (const void *elem1, const void *elem2 ) ;
1、对int类型数组排序
compare函数:
int compare(const void *a , const void *b )
return *(int *)a - *(int *)b;
//升序排序
//return *(int *)b - *(int *)a; //降序排序
/*可见:参数列表是两个空指针,现在他要去指向你的数组元素。所以转型为你当前的类型,然后取值。
升序排列时,若第一个参数指针指向的&值&大于第二个参数指针指向的&值&,则返回正;
若第一个参数指针指向的&值&等于第二个参数指针指向的&值&,则返回零;
若第一个参数指针指向的&值&小于第二个参数指针指向的&值&,则返回负。
降序排列时,则刚好相反。
&测试实例:
#include&iostream&
#include&stdlib.h&
int compare(const void *a,const void *b)
return *(int*)b-*(int*)a;
//降序排列
int main()
int a[ ]={2,4,1,23,5,76,0,43,24,65};
int length = sizeof(a)/sizeof(int);
for(i=0;i&i++)
cout&&a[i]&&" ";
qsort(a,length,sizeof(int),compare);
for(i=0;i&i++)
cout&&a[i]&&" ";
&2.对char类型数组排序(同int类型)
char word[100];
int compare( const void *a , const void *b )
//注意,网上很多版本是 & return *(char *)a - *(int *)b;
//注意: *(int *)b是错误的用法
//应该是return *(char *)a - *(char *)b;
return *(char *)a - *(char *)b;
qsort(word,100,sizeof(word[0]),compare);
3.对double类型数组排序
double in[100];
int compare( const void *a , const void *b )
return *(double *)a & *(double *)b ? 1 : -1;
//返回值的问题,显然compare返回的是一个整型,所以避免double返回小数而被丢失,用一个判断返回值。
qsort(in,100,sizeof(in[0]),compare);
二.sort函数
常用于C++中,头文件为algorithm。
sort(first,last)
在[first, last)中的元素进行排序按升序排列
注意:sort默认排序后是升序。如果要想按降序排列,需自己编写一个比较函数来实现。
对给定区间所有元素进行排序
stable_sort
对给定区间所有元素进行稳定排序
partial_sort
对给定区间所有元素部分排序
partial_sort_copy
对给定区间复制并排序
nth_element
找出给定区间的某个位置对应的元素
判断一个区间是否已经排好序
使得符合某个条件的元素放在前面
stable_partition
相对稳定的使得符合某个条件的元素放在前面
sort(begin,end),表示一个范围,例如:
int _tmain(int argc, _TCHAR* argv[])
int a[20]={2,4,1,23,5,76,0,43,24,65},i;
for(i=0;i&20;i++)
cout&&a[i]&&
sort(a,a+20);
//按升序排序
for(i=0;i&20;i++)
cout&&a[i]&&
输出结果将是把数组a按升序排序,说到这里可能就有人会问怎么样用它降序排列呢?这就是下一个讨论的内容.
&一种是自己编写一个比较函数来实现,接着调用三个参数的sort:sort(begin,end,compare)就成了。对于list容器,这个方法也适用,把compare作为sort的参数就可以了,即:sort(compare).
1.自己编写compare函数:
bool compare(int a,int b)
return a&b;
//升序排列,如果改为return a&b,则为降序
int _tmain(int argc, _TCHAR* argv[])
int a[20]={2,4,1,23,5,76,0,43,24,65},i;
for(i=0;i&20;i++)
cout&&a[i]&&
sort(a,a+20,compare);
for(i=0;i&20;i++)
cout&&a[i]&&
2.更进一步,让这种操作更加能适应变化。也就是说,能给比较函数一个参数,用来指示是按升序还是按降序排,这回轮到函数对象出场了。
为了描述方便,我先定义一个枚举类型EnumComp用来表示升序和降序。很简单:
enum Enumcomp{ASC,DESC};
然后开始用一个类来描述这个函数对象。它会根据它的参数来决定是采用&&&还是&&&。
class compare
compare(Enumcomp c):comp(c) {};
bool operator () (int num1,int num2)
switch(comp)
return num1&num2;
case DESC:
return num1&num2;
接下来使用 sort(begin,end,compare(ASC)实现升序,sort(begin,end,compare(DESC)实现降序。
主函数为:
int main()
int a[20]={2,4,1,23,5,76,0,43,24,65},i;
for(i=0;i&20;i++)
cout&&a[i]&&
sort(a,a+20,compare(DESC));
for(i=0;i&20;i++)
cout&&a[i]&&
3.其实对于这么简单的任务(类型支持&&&、&&&等比较运算符),完全没必要自己写一个类出来。标准库里已经有现成的了,就在 functional里,include进来就行了。functional提供了一堆基于模板的比较函数对象。它们是(看名字就知道意思 了):equal_to&Type&、not_equal_to&Type&、greater&Type&、 greater_equal&Type&、less&Type&、less_equal&Type&。对于这个问题 来说,greater和less就足够了,直接拿过来用:
升序:sort(begin,end,less&data-type&());
降序:sort(begin,end,greater&data-type&()).
int _tmain(int argc, _TCHAR* argv[])
int a[20]={2,4,1,23,5,76,0,43,24,65},i;
for(i=0;i&20;i++)
cout&&a[i]&&
sort(a,a+20,greater&int&());
for(i=0;i&20;i++)
cout&&a[i]&&
&4.既然有迭代器,如果是string 就可以使用反向迭代器来完成逆序排列,程序如下:
int main()
string str("cvicses");
string s(str.rbegin(),str.rend());
cout && s &&
阅读(...) 评论()

我要回帖

更多关于 sort函数的参数 的文章

 

随机推荐