博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java基础数组(带基础排序法)
阅读量:6313 次
发布时间:2019-06-22

本文共 3323 字,大约阅读时间需要 11 分钟。

数组是一种数据结构,用来储存同一类型值的集合

1.数组需要先声明数组类型(即储存的数据类型)如:int [] a;       其中int是数组类型[]代表一维数组a代表数组名。

2.创建数组a:    int [] a = new int[100];   表明创建一个储存100 个整型数的数组没有具体值时默认为0。

   也可以直接创建有具体内容的数组: int [] a = {1, 2, 3, 4, 5, 6, 7, 8, 9} ;

 

    boolean数组的元素会初始化为false;

 

    对象数组的元素则初始化为一个特殊值null,这表示这些元素还未存放任何对象。(比如:for(int i=0;i<100;i++)names[i]="";

3.多维数组: int [][] a = new int[10][10]; 表示创建一个10*10的二维数组,以此类推。

例子:利用二维数组生成杨辉三角:

1 package Demo1; 2 import java.util.Scanner; 3  4 public class Demo1 { 5     public static void main(String[] args) { 6     System.out.println("请输杨辉三角层数"); 7     // 8 9 行是获取输入数据输入语句 8     Scanner sc = new Scanner(System.in); 9          int row = sc.nextInt();10          sc.close();11          int [][] m = new int [row][row];12          for (int i = 0; i < row; i++) {13              for (int k = 0; k < 8 - i; k++) {14                  15                  System.out.print(" ");16              }  // 此for语句体是打印每行的空格数17                18                  for (int j = 0; j < i + 1; j++) {19                          if (j == 0 || i == j) {20                          m[i][j] = 1; // 确定杨辉三角数字1的位置21                          } else {22                     m[i][j] = m[i - 1][j] + m[i - 1][j - 1];23                     // 找出数组具体数据联系24                      }25                 System.out.printf("%2d ",m[i][j]);26                  }27             System.out.println();  // 空行28          }   29     }

 冒泡排序法:

package Demo1; import java.util.Arrays;public class Test1 {         public static void main(String[] args) {                int [] arr = {5, 8, 1, 7, 4, 9, 6, 3, 2};                boolean flag = false;//           冒泡总次数                                       - 1 非必须        for (int i = 0; ! flag && i < arr.length - 1; i++) {            flag = true;        for (int j = 0; j < arr.length - 1 - i; j++) {            // - 1 必须防止越界 减 i 提高效率            if (arr[j] > arr[j + 1]) {                int temp = arr[j];                arr[j] = arr[j + 1];                arr[j + 1] = temp;                // 确定无序                flag = false;            }        }    }            System.out.println(Arrays.toString(arr));     }}

选择排序法:

1                   int [] arr = {5, 8, 1, 7, 4, 9, 6, 3, 2}; 2                   for (int i = 0; i < arr.length - 1; i++) { 3             // 假定当前i地址是样本最小值的位置 4             int num = i; 5             for (int j = i + 1; j < arr.length;j++) { 6                 // 如果j位置元素比当前位置元素小,更新最小位置 7                 if (arr[num] > arr[j]) { 8                     num = j; 9                 }10             }11             // 把当前最小位置元素与无序区第一个元素交换值12             int temp = arr[i];13             arr[i] = arr[num];14             arr[num] = temp;15         }16         System.out.println(Arrays.toString(arr));

插入排序法:

1         for (int i = 1; i < arr.length; i++) { 2             // j 当前要向前插入的位置 3             int j = i; 4             // 把要向 前插入的元素保存在temp里 5             int temp = arr[j]; 6             // temp 小于当前位置前一个元素    7             while (j > 0 && temp < arr[j - 1]) {  // 利用短路与跳过越界 8                 // 把前一个元素保存当前位置 9                 arr[j] = arr[j - 1];10                 // 当前位置前移11                 j--;12             }13             // 把需要的数据插入的正确位置上14             arr[j] = temp;15         16         }17         System.out.println(Arrays.toString(arr));

 

转载于:https://www.cnblogs.com/lidiange/p/7197421.html

你可能感兴趣的文章
VMware虚拟机文件夹中各文件作用详解
查看>>
作为IT人员,专业和不专业的差别有多大?
查看>>
社区畅想
查看>>
理解思科IPS的部署架构
查看>>
JavaWeb系列-JDBC
查看>>
使用inode号删除特殊文件及容易忽视的硬链接Links数目问题
查看>>
网络安全系列之二十四 XSS跨站脚本***2
查看>>
Linux web服务安装apache 思路 (源码编译,自己定义服务)
查看>>
Windows Server入门系列之十八 ARP命令
查看>>
SQL Server2005同步复制设置
查看>>
怎样用photoshop制作网站横条广告?
查看>>
python 字符串split (string split)
查看>>
python技巧31[python中使用enum](转)
查看>>
Android学习笔记36:使用SQLite方式存储数据
查看>>
abap问题:call transformation出来的xml字符串不能被proxy识别
查看>>
分享:ThinkPad E40无线网卡驱动安装 FOR CENTOS6.3
查看>>
文件格式配置文件weka频繁模式挖掘使用方法
查看>>
powershell---begin
查看>>
NV UP EI PL NZ NA PO NC的含义(转)
查看>>
hdu 1281(二分图最大匹配+枚举)
查看>>