冒泡法排序
public staticvoid bubbleSore(int[] arr)
{
for(intx=0;x<arr.length-1;x++)
{
for(inty=0;y<arr.length-x-1;y++)//-x:让每一次比较的元素减少;-1:避免角标越界。
{
if(arr[y]>arr[y+1])
{
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
}
选择法排序
//选择排序
public static void selectSort(int[] arr)
{
for(intx=0;x<arr.length-1;x++)
{
for(inty=x+1;y<arr.length;y++)
{
if(arr[x]>arr[y])
{
int temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
}
折半查找的方式1:
public staticint halfSearch(int[] arr, int key)
{
int min,max,mid;
min=0;
max=arr.length;
mid=(min+max)/2;
while(arr[mid]!=key)
{
if(key>arr[mid])
min=mid+1;
elseif(key<arr[mid])
max=mid-1;
mid=(max+min)/2;
if(min>max);
return-1;
}
return mid;
}
折半查找2:
public staticint halfSearch1(int[] arr, int key)
{
int min,max,mid;
min=0;
max=arr.length;
//mid=(min+max)/2;
while(min<max)
{
mid=(max+min)>>1;
if(key>arr[mid])
min=mid+1;
else if(key<arr[mid])
max=mid-1;
else return mid;
}
return -1;
}
}