为防止广告,目前nocow只有登录用户能够创建新页面。如要创建页面请先登录/注册(新用户需要等待1个小时才能正常使用该功能)。
选择排序
来自NOCOW
目录 |
[编辑] 基本思想
选择排序的基本思想是:对待排序的记录序列进行n-1遍的处理,第1遍处理是将L[1..n]中最小者与L[1]交换位置,第2遍处理是将L[2..n]中最小者与L[2]交换位置,......,第i遍处理是将L[i..n]中最小者与L[i]交换位置。这样,经过i遍处理之后,前i个记录的位置就已经按从小到大的顺序排列好了。
[编辑] 时间复杂度
选择排序的时间复杂度:O(n^2)
[编辑] 算法实现
[编辑] java 程序
public class myclass { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("选择排序——java"); int array[]={20,10,50,40,30,70,60,80,90,100}; int i,j,t; int l=array.length; for (i=0;i<l-1;i++) { for (j=i+1;j<l;j++) { if(array[j]<array[i]) { t=array[j]; array[j]=array[i]; array[i]=t; } } } for (i=0;i<=l-1;i++) { System.out.println("array["+i+"]="+array[i]); } } }
[编辑] pascal 程序
例:输入序列数据按非减顺序输出. 程序如下: program xzpx; const n=7; var a:array[1..n] of integer; i,j,k,t:integer; begin write('Enter date:'); for i:= 1 to n do read(a[i]); writeln; for i:=1 to n-1 do begin k:=i; for j:=i+1 to n do if a[j]<a[k] then k:=j; if k<>i then begin t:=a[i];a[i]:=a[k];a[k]:=t;end; end; write('output data:'); for i:= 1 to n do write(a[i]:6); writeln; end.
选择排序是一个小作品,欢迎帮助扩充这个条目。