常用排序方法(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);
}
}
/**
* 冒泡排序法
* @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);
}
}
相关文章推荐
- C#数组排序的两种常用方法
- 【C#基础知识】之结构、数组及常用的几种排序方法总结
- 通过写一个Demo展示C#中多种常用的集合排序方法
- 几种常用排序方法的C#实现
- 通过写一个Demo展示C#中多种常用的集合排序方法
- 几种常用的C#排序方法简介
- C# 常用排序方法 冒泡排序,直接选择排序,直接插入排序
- 几种常用的C#排序方法简介
- Oracle 排序中常用的NULL值处理方法
- 几种常用的排序方法4--归并排序
- Objective-C中数组对象排序的方法(OC中NSString的常用API的基础应用2)
- C#常用函数及方法集
- 几种常用的排序方法6--计数排序
- 几种常用的排序方法7--希尔排序
- c#一些常用的方法集合
- C#常用类和方法
- (转载)C#常用类和方法
- c#.net常用的小函数和方法集
- 常用数组排序方法(Java实现)
- 最常用的SQL排序、分组与统计的使用方法