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

Java之数组运用及排序介绍

2013-09-04 23:54 162 查看
一、数组
(1)概念

同一种类型数据的集合。其实数组就是一个容器。

(2)数组的好处

可以自动给数组中的元素从0开始编号,方便操作这些元素。

(3)数组的定义格式

a,元素类型[ ] 数组名 = new 元素类型[元素个数或数组长度];

示例:int[ ] arr = new int[5];

b,元素类型[ ] 数组名 = new 元素类型[ ]{元素,元素,……};

示例:int[ ] arr= new int[ ]{3,5,1,7}; int[ ] arr={3,5,1,7};

二、求最值

步骤:

1,定义一个数组,并任意输入一组整数。

2,定义变量,初始化为数组中任意一个元素即可。

3,通过循环语句对数组进行遍历。

4,在变量过程中定义判断条件,如果遍历到的元素比变量中的大(小),就赋值给该变量。

源代码:

import java.util.Scanner;

public class FindMostValue {

public static void main(String[] args) {

int[] arr = new int[6];

Scanner sc = new Scanner(System.in);



System.out.print("请任意输入六个整数:");

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

arr[i] = sc.nextInt();

}

getMost(arr);

}

public static void getMost(int[] arr){

int max,min;

max=min=arr[0];

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

if(max<arr[i])

max=arr[i];

else

min=arr[i];

}

System.out.println("该组整数的最大值为:" + max);

System.out.println("该组整数的最小值为:" + min);

}

}

三、排序

(1)选择排序算法

/*

任意输入6个整数,

通过选择排序进行升序排序。

*/

import java.util.Scanner;

public class ArrayDemo {

public static void main(String[] args) {

int[] arr = new int[6];

Scanner sc = new Scanner(System.in);



System.out.print("请任意输入六个整数:");

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

arr[i] = sc.nextInt();

}



selectSort(arr);

printArray(arr);

}

public static void selectSort(int[] arr){//选择排序

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

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

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

swap(arr,x,y);

}

}

}

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 swap(int[] arr,int a,int b){//置换功能提取

int temp = arr[a];

arr[a] = arr[b];

arr[b] = temp;

}

}

(2)冒泡排序算法

/*

任意输入6个整数,

通过冒泡排序进行升序排序。

*/

import java.util.Scanner;

public class ArrayDemo {

public static void main(String[] args) {

int[] arr = new int[6];

Scanner sc = new Scanner(System.in);



System.out.print("请任意输入六个整数:");

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

arr[i] = sc.nextInt();

}



bubbleSort(arr);

printArray(arr);

}

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++) {

if(arr[y]>arr[y+1])

swap(arr,y,y+1);

}

}

}

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 swap(int[] arr,int a,int b){//置换功能提取

int temp = arr[a];

arr[a] = arr[b];

arr[b] = temp;

}

}

(3)插入排序算法

public static void insertSort(int[] args){//插入排序算法

for(int i=1;i<args.length;i++){

for(int j=i;j>0;j--){

if (args[j]<args[j-1]){

int temp=args[j-1];

args[j-1]=args[j];

args[j]=temp;

}else break;

}

}

}

(4)利用Arrays带有的排序方法快速排序

import java.util.Arrays;

public class Test2{

public static void main(String[] args){

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

Arrays.sort(a); //进行排序

for(int i=0; i<= a.length;i++){

System.out.print(a[i]);

}

}

}

注意关键点:Arrays.sort(arr)在Java中,已经定义好的一种排序方式。开发中,对数组排序,要使用该句代码。

四、进制转换


在Java中有定义好的函数,可以将十进制转换成二进制、八进制和十六进制的形式。

Integer.toBinaryString(int i);将十进制转换成二进制。

Integer.toOctalString(int i);将十进制转换成八进制。

Integer.toHexString(int i);将十进制转换成十六进制。

/*

输入一个整数(十进制)

然后分别输出该数的二进制、八进制和十六进制的形式

*/

import java.util.Scanner;

public class ArrayTest {

public static void main(String[] args) {

char[] chs = {'0','1','2','3',

'4','5','6','7',

'8','9','A','B',

'C','D','E','F'};//定义进制表

char[] arr = new char[32];//定义一个存储容器

int pos = arr.length;//定义一个操作数组的指针

Scanner sc = new Scanner(System.in);

int num;//定义一个存储输入整数的变量



System.out.print("请输入一个整数(num):");

num = sc.nextInt();

toOther(chs,arr,pos,num,1);//二进制

toOther(chs,arr,pos,num,3);//八进制

toOther(chs,arr,pos,num,4);//十六进制

}

public static void toOther(char[] chs,char[] arr,int pos,int num,int p){

int n=(int)(Math.pow(2, p)-1);//定义一个整数,来存放将要&的数

if(p==1){

System.out.print("该整数的二进制是:");

}

else if(p==3){

System.out.print("该整数的八进制是:");

}

else{

System.out.print("该整数的十六进制是:");

}

do{

int temp = num & n;

arr[--pos]=chs[temp];

num = num>>>p;

}while(num!=0);



for (int i = pos; i < arr.length; i++) {

System.out.print(arr[i]);

}

System.out.println();

}

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