对于排序问题,有两个经典的算法:选择排序法和 冒泡排序法。
这两种算法的各种主流编程语言(C,C++,C#,JAVA)的实现版本都有。
下面以SAS语言为例,实现这两种算法。
http://blog.sina.com.cn/s/blog_41889b900101p3yx.html
- data _null_;
- array a[7] (95 93 92 99 98 85 94);
- /* selection sort*/
- do i=1 to dim(a)-1;
- min=i;
- do j=i+1 to dim(a);
- if (a[min]>a[j]) then do;
- min=j;
- tmp=a[i]; a[i]=a[min]; a[min]=tmp;
- end;
- end;
- end;
- /*print sorted array*/
- do i=1 to dim(a);
- put a[i];
- end;
- run;
- data _null_;
- array a[7] (95 93 92 99 98 85 94);
- /* bubble sort*/
- do i=1 to dim(a);
- do j=1 to dim(a)-i;
- if a[j]>a[j+1] then do;
- tmp=a[j]; a[j]=a[j+1];a[j+1]=tmp;
- end;
- end;
- end;
- /*print sorted array*/
- do i=1 to dim(a);
- put a[i];
- end;
- run;
其实如果不是为了好玩,SAS有简单的例程可以实现。
- data _null_;
- array a[7] (95 93 92 99 98 85 94);
- call sortn(of a[*]);
- do i=1 to dim(a);
- put a[i];
- end;
- run;