/*数组的选择排序
class Array1
{
public static void main(String []args)
{
int []arr={3,6,5,4,9,7,8,0};
sort(arr);
printarray(arr);
}
public static void sort(int []arr)
{
for (int x=0;x<arr.length ;x++ )
{
for (int y=0;y<arr.length ;y++ )
{
if (arr[x]>arr[y])//大的在前 反着排
{
int temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
}
public static void printarray (int []arr)
{
for (int x=0;x<arr.length;x++ )
{
System.out.print(arr[x]);
}
}
}
*/
/*//数组的冒泡排序
class Array1
{
public static void main(String []args)
{
int []arr={3,6,5,4,9,7,8,0};
sort(arr);
printarray(arr);
}
public static void sort(int []arr)
{
for (int x=0;x<arr.length ;x++ )
{
for (int y=0;y<arr.length-x-1 ;y++ )
{
if (arr[y]>arr[y+1])//大的在前倒着排
{
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
}
public static void printarray (int []arr)
{
for (int x=0;x<arr.length;x++ )
{
System.out.print(arr[x]);
}
}
}
*/
/*数组的折半查找 以key!=arr[mid]为主条件 while格式
折半查找数组必须是有序的
折半查找循环次数不明确,适合while结构,
for结构也可以运行是因为折半查找的次数小于arr.length
class Array1
{
public static void main(String []args)
{
int []arr={0,1,2,3,4,5,6,7,8,9};
int index=halfsearch(arr,8);
System.out.println("index="+index);
}
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 (arr[mid]>key)
{
max=mid-1;
}
else if (arr[mid]<key)
{
min=mid+1;
}
if(min>max) return -1;
mid=(min+max)/2;
}
return mid;
}
}
*/
/*
数组的折半查找 以ke!=arr[mid]为主条件 for格式
折半查找数组必须是有序的
折半查找循环次数不明确,适合while结构,
for结构也可以运行是因为折半查找的次数小于arr.length
class Array1
{
public static void main(String []args)
{
int []arr={0,1,2,3,4,5,6,7,8,9};
int index=halfsearch(arr,8);
System.out.println("index="+index);
}
public static int halfsearch(int []arr,int key)
{
int min,max,mid;
min=0;
max=arr.length-1;
mid=(min+max)/2;
for (int x=0;x<arr.length ; x++)
{
if(arr[mid]!=key)
{
if (arr[mid]>key)
{
max=mid-1;
}
else if (arr[mid]<key)
{
min=mid+1;//过程
}
if(min>max) return -1;//结果
//为什么用if不用else
mid=(min+max)/2;
}
else return mid;
}
//为什么要有return:
//定义返回值为int,
//系统在最后查找时要确定有没有返回值要求类型
//如果定义返回值为void,for循环内的int类型返回值将无法返回
}
}
*/
/*数组的折半查找 以min<max为主条件 while格式
折半查找数组必须是有序的
class Array1
{
public static void main(String []args)
{
int []arr={0,1,2,3,4,5,6,7,8,9};
int index=halfsearch(arr,8);
System.out.println("index="+index);
}
public static int halfsearch(int []arr,int key)
{
int min,max,mid;
min=0;
max=arr.length-1;
mid=(min+max)/2;
while (min<=max)
{
if (arr[mid]>key)
{
max=mid-1;
}
else if (arr[mid]<key)
{
min=mid+1;
}
else return mid;//结果
//相当于 if(arr[mid]=key) return mid;
mid=(min+max)/2;
}
return -1;
}
}
*/
/*数组的折半查找 以mia<max为主条件 for格式
折半查找数组必须是有序的
class Array1
{
public static void main(String []args)
{
int []arr={0,1,2,3,4,5,6,7,8,9};
int index=halfsearch(arr,13);
System.out.println("index="+index);
}
public static int halfsearch(int []arr,int key)
{
int min,max,mid;
min=0;
max=arr.length-1;
mid=(min+max)/2;
for (int x=0;x<arr.length ; x++)
{
if(min<max)
{
if (arr[mid]>key)
{
max=mid-1;
}
else if (arr[mid]<key)
{
min=mid+1;//过程
}
if(min>max) return -1;//结果
//为什么用if不用else
mid=(min+max)/2;
}
else mid=mid;
}
return mid;//函数最终必须要有返回值,或者返回语句
}
}
*/
|