Java 数组练习——排序和查找
练习markdown编辑器。0.0
选择排序
public static void selectSort(int[] arr)
{
for(int x = 0; x < arr.length; 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 bubbleSort(int[] arr)
{
for(int x = 0; x < arr.length-1; x++)
{
for(int y = 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 int halfSearch(int[] arr,int key)
{
int min,max,mid;
min = 0;
max = arr.length-1;
mid = (min+max)/2;
while (arr[mid] != key)
{
if(key > arr[mid])
min = mid+1;
else if(key < arr[mid])
max = mid-1;
if(min>max)
return -1;
mid = (min+max)/2;
}
return mid;
}
public static int halfSearch2(int[] arr,int key)
{
int min = 0,max = arr.length-1,mid;
while(min <= max)
{
mid = (min+max)>>1;
if(key > arr[mid])
min = mid + 1;
else if(key < arr[mid])
max = mid - 1;
else
return mid;
}
return -1;
}