/*
*数组是Java中的一种引用数据类型,可以存储基本数据类型的数据,也可以存储引用数据类型的数据。
*
*数组的一些常见操作:选择排序、冒泡排序、折半查找、查表
*/
package classfile;
/**
*数组的简单应用
*
*@author programmer
*/
public class ArrayDemo
{
public static void main(String[] args)
{
int[] arr = new int[]{4,3,5,1,7,9,0,2};
selectionSort(arr);
printArray(arr);
bubbleSort(arr);
printArray(arr);
System.out.println("index of "+binarySearch(arr,17));
toHex(60);
}
/**
*本方法可以将一个整数型的数组,以规范的形式输出在控制台上。
*
*@param arr
* 一个整数型的数组
*/
public static void printArray(int[] arr)
{
System.out.print("{");
for(int i=0;i<arr.length;i++)
{
if(i!=arr.length-1)
{
System.out.print(arr[i]+",");
}
else
{
System.out.print(arr[i]);
}
}
System.out.println("}");
}
/**
*本方法可以对一个整数型的数组,进行选择排序。
*
*@param arr
* 一个整数型的数组
*/
public static void selectionSort(int[] arr)//第一个元素先完成比较
{
for(int i=0;i<arr.length;i++)//外循环控制参与比较的元素的个数
{
for(int j=i+1;j<arr.length;j++)//内循环控制比较的动作
{
if(arr[i]>arr[j])
{
int temp = arr[i];//定义一个临时变量,用于置换两个数组元素的位置
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
/**
*本方法可以对一个整数型的数组,进行冒泡排序。
*
*@param arr
* 一个整数型的数组
*/
public static void bubbleSort(int[] arr)//最后一个元素先完成比较
{
for(int i=0;i<arr.length-1;i++)//外循环控制参与比较的元素的个数
{
for(int j=0;j<arr.length-1-i;j++)//内循环控制比较的动作
{
if(arr[j]>arr[j+1])
{
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
/**
*本方法可以对一个有序的整数型的数组,进行折半查找。
*
*@param arr
* 一个整数型的数组
*@param vlaue
* 一个整数型的数字
*@return
* 返回被查找的数字在该数组中的角标,如果不存在则返回-1。
*/
public static int binarySearch(int[] arr,int value)
{
int min = 0,max = arr.length-1,mid = (min+max)/2;
while(arr[mid]!=value)
{
if(value>arr[mid])
{
min = mid+1;
}
else
{
max = mid-1;
}
if(min>max)
{
return -1;//如果此处返回min,则就是该数字在不影响数组有序的情况下,可以插入的位置
}
mid = (min+max)/2;
}
return mid;
}
/**
*本方法可以将一个十进制的整数,转换为十六进制的表现形式,并在控制台上输出
*
*@param number
* 一个十进制的整数
*/
public static void toHex(int number)
{
System.out.print(number+"的十六进制的表示形式为:");
char[] table = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};//用数组建立一张表
char[] arr = new char[8];
int pointer = arr.length;
while(number!=0)
{
int temp = number & 15;
arr[--pointer] = table[temp];//将查到的内容存入临时数组中
number = number>>>4;
}
for(int i=pointer;i<arr.length;i++)//输出查到的内容
{
System.out.print(arr[i]);
}
System.out.println();
}
}
数组
最新推荐文章于 2021-02-07 10:42:30 发布