为防止广告,目前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.
选择排序是一个小作品,欢迎帮助扩充这个条目。
个人工具