Java之数组运用及排序介绍

一、数组

           (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();
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值