数组排序练习
选择排序,冒泡排序,折半查找
package tex;
final class Fu {
public static void main(String args[]) {
int[] arr1=new int[] {3,7,10,1,6,4};
printArr(arr1);
sortArr_2(arr1);
printArr(arr1);
System.out.println("index="+findArr(arr1,1));
}
//打印数组
public static void printArr(int[] arr)
{
for(int x=0;x<arr.length;x++)
{
if(x!=arr.length-1)
System.out.print(arr[x]+",");
else
System.out.println(arr[x]);
}
}
//选择排序,依次将最小值、第二小…依序排入右边
public static void sortArr_1(int[] arr)
{
for(int x=0;x<arr.length-1;x++)
for(int y=x+1;y<arr.length;y++)
{
if(arr[x]>arr[y])
{
int temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
//冒泡排序
public static void sortArr_2(int[] arr)
{
for(int x=arr.length-1;x>0;x--)
for(int y=0;y<x;y++)
{
if(arr[y]>arr[y+1])
{
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
//折半查找
public static int findArr(int[] arr,int x)
{
int min=0;
int max=arr.length-1;
int mid=(min+max)/2;
while(arr[mid]!=x)
{
if(arr[mid]>x)
max=mid-1;
else if(arr[mid]<x)
min=mid+1;
mid=(min+max)/2;
if(min>max)
return -1;
}
return mid;
}
}

浙公网安备 33010602011771号