有方法用也得熟悉的排序~虽然很简单,而且Java提供了有排序的方法,但是还是应该掌握,因为面试有时会考
/*
对给的数组进行排序
*/
class ArrayTest
{
public static void main(String[] args)
{
int arr[] = {2,4,5,3,8,6,7,9,0,11,22,44};//给定的数组
sort_Array(arr);
int index = getIndex(arr,33);
System.out.println("index= " + index);
}
/*
练习:有一个有序的数组。想要将一个元素插入到该数组中,还要保证该数组是有序的
*/
/*
数组的查找方式
*/
//定义功能,获取key第一次出现在数组中的位置,如果返回-1,代表不存在
/*public static int getIndex(int[] arr, int key)
{
for (int x = 0; x < arr.length ; x++ )
{
if (arr[x] == key)
{
return x;
}
}
return -1;
}
*/
//对于有序的数组,使用折半查找,可以提高效率。
/*public static int getIndex(int arr[], int key)
{
int min = 0;
int max = arr.length - 1;
int mid = (min + max)/2;
while (arr[mid] != key)
{
if (arr[mid] > key)
{
max = mid - 1;
}
else if (arr[mid] < key)
{
min = mid + 1;
}
mid = (min + max)/2;
if (min > max) //未找到返回-1
{
return -1;
}
}
return mid;
}
*/
//选择排序
public static void sort_Array(int arr[])
{
int temp;
for (int x = 0; x < arr.length - 1; ++x)
{
for (int y = x +1; y< arr.length; ++y )
{
if (arr[x] > arr[y])
{
temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
transefer(arr);
return;
}
//冒泡排序
/*
public static void sort_Array(int arr[])
{
int temp;
for (int x = 0; x < arr.length - 1; ++x)
{
for (int y = 0; y < arr.length -x -1 ; ++y)
{
if (arr[y] > arr[y + 1])
{
temp = arr[y];
arr[y] = arr[y + 1];
arr[y + 1] = temp;
}
}
}
}
*/
//数组遍历
public static void transefer(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]+"]");
}
}
}
本文介绍了一个简单的Java程序,演示了如何使用选择排序算法对整数数组进行排序,并通过折半查找实现高效查找。此外,还提供了一个插入元素到已排序数组中的练习。
7万+

被折叠的 条评论
为什么被折叠?



