今天没有看新的内容,就总结一下原来看到的几种排序方法,现在好像也只能写出三种排序:冒泡、选择和插入排序法,另外再补充一个二分法的查找方法,总结如下:
public class Rank
{
public void geta(int a[])
{
for(int i=0;i<a.length;i++)
a[i]=(int)(Math.random()*100);
}
public void print(int a[])
{
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
System.out.println();
}
public void maopao(int a[])
{
int temp;
for(int i=0;i<a.length-1;i++)
for(int j=0;j<a.length-1-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
public void xuanze(int a[])
{
int temp;
for(int i=0;i<a.length-1;i++)
for(int j=i+1;j<a.length;j++)
{
if(a[i]>a[j]
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
public void charu(int a[])
{
int insert;
for(int i=0;i<a.length;i++)
{
insert=a[i]
for(int j=0;j<i;j++)
{
if(a[j]<a[i])
{
insert=a[i];
a[i]=a[j];
a[j]=insert;
}
}
}
}
public void erfenfa(int a[],int x,int left,int right)
{
int mid=(left+right)/2;
if(left<=right)
{
if(x<a[mid])
erfenfa(a,x,left,mid-1);
else if(x>a[mid])
erfenfa(a,x,mid+1,right);
else
System.out.println("找到该数是第"+(mid+1)+"个");
}
}
public static void main(String args[])
{
int a[]=new int[9];
Rank rank=new Rank();
rank.geta(a);
System.out.print("原数组为:")
rank.print(a);
}
}
public static void main(String args[])
{
//主函数省略
}
总算写完了,还是优点忘了,困死。
网友评论