码迷,mamicode.com
首页 > 编程语言 > 详细

java基础数组(带基础排序法)

时间:2017-07-17 21:51:49      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:交换   基础   int()   lag   rgs   code   else   class   print   

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

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

 

java基础数组(带基础排序法)

标签:交换   基础   int()   lag   rgs   code   else   class   print   

原文地址:http://www.cnblogs.com/lidiange/p/7197421.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!