您的位置:首页 > 编程语言 > C#

常用排序方法(C#)

2012-05-21 11:19 225 查看
public class SortAlgorithm {

/**

* 冒泡排序法

* @param numlist

*/

private void bubbleSort(int[] numlist)

{

int out,in;

for(out=numlist.length-1;out>1;out--)

{

for(in=0;in<out;in++)

{

if(numlist[in]>numlist[in+1])

{

int temp=numlist[in];

numlist[in]=numlist[in+1];

numlist[in+1]=temp;

}

}

}

}

/**

* 插入排序

* @param numlist

*/

private void insertSort(int[]numlist)

{

int in,out;

for(out=1;out<numlist.length;out++)

{

int temp=numlist[out];

in=out;

while(in>0&&numlist[in-1]==temp)

{

numlist[in]=numlist[in-1];

in--;

}

numlist[in]=temp;

}

}

/**

* 选择排序

*/

private void selectionSort(int[]numlist)

{

int in,out,min;

for(out=0;out<numlist.length-1;out++)

{

min=out;

for(in=out+1;in<numlist.length;in++)

{if(numlist[in]<numlist[min])

min=in;

int temp=numlist[out];

numlist[out]=numlist[min];

numlist[min]=temp;

}

}

}

/**

* 输出数组各值

* @param numlist

*/

private void display(int[]numlist)

{

for(int i=0;i<numlist.length;i++)

{

System.out.print(numlist[i]+" ");

}

System.out.println(" ");

}

public static void main(String[] args)

{

int numlist[]=new int[]{45,167,199,-4,9,123,7,24,66,18};

System.out.print("原序为:");

SortAlgorithm sort=new SortAlgorithm();

sort.display(numlist);

long begin=System.currentTimeMillis();

sort.bubbleSort(numlist);

long end=System.currentTimeMillis();

System.out.println("冒泡排序用时为:"+(end-begin));

System.out.print("排序后:");

sort.display(numlist);

begin=System.currentTimeMillis();

sort.insertSort(numlist);

end=System.currentTimeMillis();

System.out.println("插入排序用时为:"+(end-begin));

System.out.print("排序后:");

sort.display(numlist);

begin=System.currentTimeMillis();

sort.selectionSort(numlist);

end=System.currentTimeMillis();

System.out.println("选择排序用时为:"+(end-begin));

System.out.print("排序后:");

sort.display(numlist);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: