您的位置:首页 > 其它

08 基本元素 数组和指针

2015-06-30 13:34 239 查看
重点在于循环嵌套的理解和使用

排序:

选择冒泡 二分法

选择:

class ArrayTest1

{

publicstatic void main(String[] args)

{

int[]arr = {5,1,6,4,2,8,9};

intmax = 0;

inttemp;

for(int x = 0; x<arr.length-1 ; x++ )

{

for(int y = x+1 ; y <arr.length ; y++ )

{

if(arr[y]>arr[x])

{

temp= arr[y];

arr[y]= arr[x];

arr[x]= temp;

}

}

}

for(int a : arr )

{

sop(a);

}

}

publicstatic void swap(int a , int b) //注意 这个函数是没有效果的

{

inttemp;

temp= a;

a= b;

b=temp;

}

publicstatic void sop(Object obj)

{

System.out.println(obj);

}

}

冒泡

class ArrayTest2

{

publicstatic void main(String[] args)

{

int[]arr = {5,1,6,4,2,8,9};

inttemp;

for(int x = 0; x<arr.length ; x++ )

{

for(int y = arr.length-1 ; y > x ; y-- )

{

if(arr[y]<arr[y-1])

{

temp= arr[y];

arr[y]= arr[y-1];

arr[y-1]= temp;

}

}

}

for(int a : arr )

{

sop(a);

}

}

publicstatic void sop(Object obj)

{

System.out.println(obj);

}

}

外圈是大体控制内圈是精细控制

查找:

折半条件是对有序数组的查找

注意:

跳出循环的条件是max>=min

原因是如果没有则说明这个数字在数组中的某两个相邻数字之间

设这两个数字为a和b

则该数字c为:

a<c<b 那么a为min b为max mid在a上

当第一次比较的时候 c>a min向右移动此时mid min max重合都在b处

但依然没有找到

当第二次比较的时候 mid在b上 c<b max向左移动此时max<min 这样就可以跳出了说明没找到

class ArrayTest4

{

publicstatic void main(String[] args)

{

int[]arr = {3,1,5,4,2,9};

intflag = halfSearch(2,arr);

sop(flag);

}

publicstatic int halfSearch(int a, int[] arr)

{

int[]myarr = selectSort(arr);

intmin,mid,max;

min= 0;

max= myarr.length-1;

mid= (min+max)/2;

//数组从大到小还是从小到大 是对程序有影响的 要理解才能变通!

while( a != myarr[mid])

{

if(a>myarr[mid])

{

max= mid-1;

}

elseif (a<myarr[mid])

{

min= mid+1;

}

if(min>max)

{

return-1;

}

mid= (min+max)/2;

}

returnmid;

}

publicstatic int[] selectSort(int[] arr)

{

inttemp;

for(int x = 0; x<arr.length-1 ; x++ )

{

for(int y = x+1 ; y <arr.length ; y++ )

{

if(arr[y]>arr[x])

{

temp= arr[y];

arr[y]= arr[x];

arr[x]= temp;

}

}

}

returnarr;

}

publicstatic void sop(Object obj)

{

System.out.print(obj);

}

}

进制转换(原理已述)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: