------- android培训、java培训、期待与您交流! ----------
class="p0" style="text-indent: 21.0000pt; margin-bottom: 0pt; margin-top: 0pt;">?
? ? ? ? ? ? ? ? ? ? ? 黑马程序员——常用算法
/*
*/
?
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;
*/
swap(arr,y,y+1);
}
}
}
}
?
/*
发现无论什么排序。都需要对满足条件的元素进行位置置换。
所以可以把这部分相同的代码提取出来,单独封装成一个函数。
*/
public?static?void?swap(int[]?arr,int?a,int?b)
{
int?temp?=?arr[a];
arr[a]?=?arr[b];
arr[b]?=?temp;
}
public?static?void?main(String[]?args)
{
int[]?arr?=?{5,1,6,4,2,8,9};
//排序前;
printArray(arr);
?
//排序
//selectSort(arr);
//bubbleSort(arr);
?
//Arrays.sort(arr);//java中已经定义好的一种排序方式。开发中,对数组排序。要使用该句代码。
//排序后:
printArray(arr);
?
}
?
public?static?void?printArray(int[]?arr)
{
System.out.print("[");
for(int?x=0;?x<arr.length;?x++)
{
if(x!=arr.length-1)
System.out.print(arr[x]+",?");
else
System.out.println(arr[x]+"]");
?
}
}
}
对给定的数组进行反转。
{3,1,5,6,2}?--->
{2,6,5,1,3}
*/
?
class??ArrayTest3
{
public?static?void?main(String[]?args)?
{
int[]?arr?=?{3,1,5,6,2};
printArray(arr);
?
//反转后;
reverseArray(arr);
?
printArray(arr);
?
}
public?static?void?reverseArray(int[]?arr)
{
for(int?start=0,end=arr.length-1;?start<end?;?start++,end--)
{
/*
int?temp?=?arr[start];
arr[start]?=?arr[end];
arr[end]?=?temp;
*/
swap(arr,start,end);
}
}
public?static?void?swap(int[]?arr,int?a,int?b)
{
int?temp?=?arr[a];
arr[a]?=?arr[b];
arr[b]?=?temp;
}
public?static?void?printArray(int[]?arr)
{
System.out.print("[");
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?toHex(int?num)
{
?
StringBuffer?sb?=?new?StringBuffer();
?
for(int?x=0;?x<8;?x++)
{
int?temp?=?num?&?15;
if(temp>9)
//System.out.println((char)(temp-10+'A'));
sb.append((char)(temp-10+'A'));
else
//System.out.println(temp);
sb.append(temp);
?
num??=?num?>>>?4;
}
System.out.println(sb.reverse());
?
}
class?ArrayDemo3?
{
public?static?void?main(String[]?args)?
{
//数组的操作:
//获取数组中的元素。通常会用到遍历。
?
//int[]?arr?=?new?int[3];
int[]?arr?=?{3,6,5,1,8,9,67};
?
//数组中有一个属性可以直接获取到数组元素个数。length.
//使用方式:数组名称.length?=?
//System.out.println("length:"+arr.length);
?
//int?sum?=?0;
/*
for(int?x=0;?x<arr.length;?x++)
{
//sum?+=?arr[x];
System.out.println("arr["+x+"]="+arr[x]+";");//arr[0]=0;
}
*/
?
//System.out.println(arr);
?
printArray(arr);
//printArray(arr);
?
}
?
//定义功能,用于打印数组中的元素。元素间用逗号隔开。
public?static?void?printArray(int[]?arr)
{
System.out.print("[");
for(int?x=0;?x<arr.length;?x++)
{
if(x!=arr.length-1)
System.out.print(arr[x]+",?");
else
System.out.println(arr[x]+"]");
?
}
}
}
?