二维数组是由一维数组组成的数组
选择排序原理
将数组中每一个元素与第一个元素相比较,如果这个元素小于第一个元素,则交换这两个元素
循环第一条规则,找出最小元素,放于第一个位置
经过n-1轮比较完成排序
冒泡排序原理
逐一比较数组中相邻的两个元素,如果后面的元素小于前面的元素就交换相互顺序
经过一轮比较,一定有一个最大的排在最后的位置
每次比较剩下的元素,经过n-1轮比较完成排序
插入排序原理
将数组分为两部分,将后部分的第一张逐一与前部分每一张比较,如果当前元素小,就移动被比较元素。找到合理位置插入
1.概念:二维数组是由一维数组组成的数组
2.语法:a.int [] [] arr=new int [2][];
定义了二维数组的长度,但是一维数组长度没有定义,一维数组没有申请内存空间null
b.int [] [] arr=new int [2][3];
定义了一维数组和二维数组的长度,一维数组分配了内存空间,一维数组的长度为3,一维数组的默认值为0;
c.二维数组也支持静态初始化
String [] []arr={{0,1,5,},{6,5,2}}
数组经典排序
1.选择排序原理
a.将数组中每个元素与第一个元素比较,如果这个元素小于第一个元素,则交换这俩个元素的位置
b.循环第一条规则,找出最小元素,防于第一个位置
c.经过N-1轮比较完成排序
package paixu;
/**
* 选择排序
*/
import java.util.Scanner;
public class zy2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入输入数字的位数:");
int c = input.nextInt();
int[] a = new int[c];
for (int i = 0; i < a.length; i++) {
System.out.print("请输入输第" + (i + 1) + "位数字:");
a[i] = input.nextInt();
}
int temp = 0;
for (int i = 0; i < a.length; i++) {
for (int j = i + 1; j < a.length; j++) {
if (a[i] > a[j]) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
for (int i = 0; i < a.length; i++)
System.out.print(a[i] + " ");
}
}
2.冒泡排序原理
a.逐一比较数组中相邻的两个元素,如果后面的元素小于前面的元素就互换
b.经过一轮比较,一定有一个最大的排在最后的位置
c.每一次比较剩下的元素,经过N-1次比较可以实现排序
1 package paixu;
2
3 /**
4 * 冒泡排序
5 */
6
7 public class zy1 {
8 public static void main(String[] args) {
9 int[] sz = { 8, 6, 5, 4, 3, 1, 2 };
10 int bl = 0;
11 for (int i = 0; i < sz.length - 1; i++) {
12 for (int j = 0; j < sz.length - 1 - i; j++) {
13 if (sz[j] > sz[j + 1]) {
14 bl = sz[j];
15 sz[j] = sz[j + 1];
16 sz[j + 1] = bl;
17 }
18 }
19 }
20 for (int i = 0; i < sz.length; i++) {
21 System.out.print(sz[i] + " ");
22 }
23 }
24
25 }
3.插入排序原理
a.将数组分为两部分,将后部分的第一张逐一与前部分每一张比较,如果当前元素小,就移动被比较的元素
b.找到合理位置插入
1 package paixu;
2
3 /**
4 * 插入排序
5 */
6 public class zy3 {
7 public static void main(String[] args) {
8 int[] sz = { 1, 9, 5, 2, 7, 4 };
9 for (int i = 1; i < sz.length; i++) {
10 int temp = sz[i];
11 int j;
12 for (j = i - 1; j >= 0; j--) {
13 if (temp < sz[j]) {
14 sz[j + 1] = sz[j];// 元素向后移动
15 } else {
16 break;
17 }
18 }
19 sz[j + 1] = temp;// 找到合适的位值插入元素
20 }
21 for (int i = 0; i < sz.length; i++) {
22 System.out.print(sz[i] + " ");
23 }
24 }
25 }