您的位置:首页 > 编程语言 > Java开发

java自学笔记之数组 排序

2013-10-18 21:37 387 查看
数组:同一种类型数据的集合,其实数组就是一个容器。

格式  int[ ] arr = new int[6];    int[ ] arr = new int[ ]{3,5,1,7};  int [ ] arr ={3,5,1,7}

获取数组长度: "数组名.length"。 

获取数组元素:for循环遍历输出。

数组排序: 

选择排序:



class Arraysort
{
public static void main(String args[])
{
int[] arr = {5,1,6,4,2,8,9};
sortarray(arr);
printarray(arr);
}

public static void sortarray(int[] arr)
{
for (int i=0;i<arr.length-1 ;i++ )
{
for (int y=i+1 ;y<arr.length;y++ )
{
if (arr[i]>arr[y])
{
int temp = 0;
temp = arr[i];
arr[i] = arr[y] ;
arr[y] = temp;
}
}
}
}
public static void printarray(int[] arr)
{

for (int i=0;i<arr.length ;i++ )
{
if(i!=arr.length-1)
System.out.print(arr[i]+",");
else
System.out.println(arr[i]);
}
}
}

冒泡排序:



class Bubblesort
{
public static void main(String args[])
{
int [] arr={5,1,6,4,2,8,9};
bubble(arr);
printarray(arr);

}
public static void bubble(int[] arr)
{
for (int i=0;i<arr.length-1 ;i++ )
{
for (int y=0;y<arr.length-i-1 ; y++)
{
if(arr[y]>arr[y+1])
{
int temp = 0;
temp = arr[y];
arr[y] = arr[y+1] ;
arr[y+1] = temp;
}
}
}
}
public static void printarray(int[] arr)
{

for (int i=0;i<arr.length ;i++ )
{
if(i!=arr.length-1)
System.out.print(arr[i]+",");
else
System.out.println(arr[i]);
}
}

}


数组查找

折半查找的两种方式:

第一种:

class Halfsort
{
public static void main(String args[])
{
int key = 8;
int [] arr ={1,5,7,9,12,55,88,95,101};
int index = halfsort(arr,key);
System.out.println(index);
}
public static int halfsort(int[] arr,int key)
{
int min = 0;
int max = arr.length-1;
int mid = (min + max)/2;
while (key != arr[mid])
{
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;
}

}
第二种:

class Halfsort2
{
public static void main(String args[])
{
int key = 10;
int [] arr ={1,5,7,9,12,55,88,95,101};
int index = halfsort(arr,key);
System.out.println(index);
}
public static int halfsort(int[] arr,int key)
{
int min = 0;
int max = arr.length-1;
int mid = 0;
while (min <= max)
{
mid = (min+max)/2;
if (key>arr[mid])
{
min = mid+1;
}
if(key<arr[mid])
{
max = mid-1;
}
if (key==arr[mid])
return mid;
}
return -1;
}

}

通过数组实现进制转换:

class Change
{
public static void main(String args[])
{
change(60,15,4);

}
public static void tobin(int num)
{
char [] biao = {'0','1'};
char [] arr = new char [32];
int post = arr.length;
while  (num != 0)
{
int index = num & 1;
arr[--post] = biao[index];
num=num >>>1 ;
}
for (int i=post;i<arr.length ;i++ )
{
System.out.print(arr[i]);
}

}

public static void change(int num, int size,int offsize)
{
char [] biao = {'0','1','2','3','4',
'5','6','7','8',
'9','A','B','C',
'D','E','F'};
char [] arr = new char [32];
int post = arr.length;
while (num != 0 )
{
int index = num & size;
arr[--post] = biao [index];
num = num >>> offsize;
}
for (int i=post ;i<arr.length ;i++ )
{
System.out.print(arr[i]);
}

}
}


今天终于真刀真枪的开始跟着视频教程敲代码了,问题很多,思路老师也已经说的差不多了,但自己敲代码的速度与

小问题还是很严重的,希望自己能坚持下去,今天是自学毕老师java视频的第四天,加油 糖伯貓!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息