楼主: webgu
2762 5

[程序分享] 选择排序法和冒泡排序法的SAS实现 [推广有奖]

贵宾

学科带头人

95%

还不是VIP/贵宾

-

TA的文库  其他...

Python与统计

SAS与统计

威望
2
论坛币
102554 个
通用积分
3.6187
学术水平
475 点
热心指数
493 点
信用等级
434 点
经验
62375 点
帖子
1557
精华
4
在线时间
2201 小时
注册时间
2009-5-4
最后登录
2024-4-23

初级学术勋章 初级热心勋章 初级信用勋章 中级学术勋章 中级热心勋章 中级信用勋章

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

对于排序问题,有两个经典的算法:选择排序法 冒泡排序法。


这两种算法的各种主流编程语言(C,C++,C#,JAVA)的实现版本都有。


下面以SAS语言为例,实现这两种算法。

http://blog.sina.com.cn/s/blog_41889b900101p3yx.html

  1. data _null_;
  2. array  a[7]  (95 93 92 99 98 85 94);
  3. /* selection sort*/
  4. do i=1 to dim(a)-1;
  5.   min=i;
  6.   do j=i+1  to dim(a);
  7.       if (a[min]>a[j])  then  do;
  8.             min=j;
  9.             tmp=a[i]; a[i]=a[min]; a[min]=tmp;
  10.            end;
  11.         end;
  12. end;
  13. /*print sorted array*/
  14. do i=1 to dim(a);
  15.     put a[i];
  16. end;
  17. run;
复制代码

  1. data _null_;
  2. array  a[7]  (95 93 92 99 98 85 94);
  3. /* bubble sort*/
  4. do i=1 to dim(a);
  5.   do j=1  to dim(a)-i;
  6.        if a[j]>a[j+1] then do;
  7.            tmp=a[j]; a[j]=a[j+1];a[j+1]=tmp;
  8.            end;
  9. end;
  10. end;
  11. /*print sorted array*/
  12. do i=1 to dim(a);
  13.   put a[i];
  14. end;
  15. run;
复制代码

其实如果不是为了好玩,SAS有简单的例程可以实现。


  1. data   _null_;
  2.   array  a[7]  (95 93 92 99 98 85 94);
  3.   call sortn(of a[*]);
  4.   do i=1 to dim(a);
  5.      put a[i];
  6. end;
  7. run;
复制代码

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:冒泡排序法 选择排序法 Selection Election sorted 编程语言 经典的 null JAVA

已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Imasasor + 100 + 100 + 4 + 4 + 5 精彩帖子,支持版主

总评分: 经验 + 100  论坛币 + 100  学术水平 + 4  热心指数 + 4  信用等级 + 5   查看全部评分

本帖被以下文库推荐

SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365
沙发
playmore 发表于 2013-6-25 13:29:55 |只看作者 |坛友微信交流群
版主知道SAS的proc rank用的什么方法排序吗?
我觉得SAS干什么都不快
但是排序真的很快
快速排序吗?
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

使用道具

藤椅
webgu 发表于 2013-6-25 21:49:52 |只看作者 |坛友微信交流群
playmore 发表于 2013-6-25 13:29
版主知道SAS的proc rank用的什么方法排序吗?
我觉得SAS干什么都不快
但是排序真的很快
这个还真没留意过,没研究这么深啊。
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

使用道具

板凳
playmore 发表于 2013-6-26 08:42:49 |只看作者 |坛友微信交流群
webgu 发表于 2013-6-25 21:49
这个还真没留意过,没研究这么深啊。
嗯,版主你给的算法都是对array排序的
这种类似于序列或矩阵的运算我觉得都不是SAS的强项

版主有没有兴趣用IML做一个最简单的对Dataset的排序?
用起泡法就行
然后和proc sort比较下
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

使用道具

报纸
webgu 发表于 2013-6-26 13:57:58 |只看作者 |坛友微信交流群
playmore 发表于 2013-6-26 08:42
嗯,版主你给的算法都是对array排序的
这种类似于序列或矩阵的运算我觉得都不是SAS的强项
呵呵,好。有空折腾下。 IML用得不熟。
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

使用道具

地板
廖青山 发表于 2022-2-24 14:16:03 |只看作者 |坛友微信交流群
楼主有其它排序算法的sas代码吗比如堆排序、插入排序等等

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-30 18:58