ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数组冒泡排序和稀疏数组

2022-03-10 10:33:10  阅读:131  来源: 互联网

标签:int array2 System 冒泡排序 稀疏 数组 println out


1、比较数组中,相邻的元素,如果第一个比第二个数大,我们就交换他们的位置。

2、每一次的比较,都会产生出一个最大,或者最小的数字。

3、依次循环,直到结束。

 

例子:

 1 public class Demo8 {
 2     public static void main(String[] args) {
 3         int[] a = {1,35,35,124,5,3,3,6,4,2};
 4 
 5         //调用完我们自己写的排序方法后,返回一个排序后的数组
 6         int[] sort = sort(a);
 7         System.out.println(Arrays.toString(sort));
 8 
 9     }
10     public static int[] sort(int[] array){
11         //定义第三方
12         //临时变量
13         int temp = 0;
14         //外层循环: 判断我们这个要走多少次
15         for (int i = 0; i < array.length-1; i++) {
16             //优化
17             //通过flag标识符减少没有意义的比较
18             boolean flag = false;
19             //内层循环: 比价判断两个数,如果第一个数, 比第二个数大, 则交换位置
20             for (int j = 0; j < array.length-1-i; j++) {
21                 if (array[j+1] > array[j]){
22                     temp = array[j];
23                     array[j] = array[j+1];
24                     array[j+1] = temp;
25                     flag = true;
26                 }
27             }
28             if (flag==false){
29                 break;
30             }
31         }
32         return array;
33     }
34 }

 

 

稀疏数组:

 1 public class Demo9 {
 2     public static void main(String[] args) {
 3         //1、建立一个二维数组11*11    0:又没棋子    1:黑棋   2: 白棋
 4         int[][] array1 = new int[11][11];
 5         array1[1][2] = 1;
 6         array1[2][3] = 2;
 7 
 8         //输出原始的数组
 9         System.out.println("输出原始数组");
10 
11         //打印
12         for (int[] ints : array1) {
13             for (int anInt : ints) {
14                 System.out.print(anInt+" ");
15             }
16             System.out.println("\n");
17         }
18 
19         //转换为稀疏数组
20         //获取有效值的个数
21         int sum = 0;
22         for (int i = 0; i < 11; i++) {
23             for (int j = 0; j < 11; j++) {
24                 if (array1[i][j] != 0){
25                     sum++;
26                 }
27             }
28         }
29         System.out.println("有效的个数:"+sum);
30         System.out.println("==========================================");
31 
32         //2、创建一个稀疏数组的数组
33         int[][] array2 = new int[sum+1][3];
34         array2[0][0] = 11;
35         array2[0][1] = 11;
36         array2[0][2] = sum;
37 
38         //遍历二维数组, 将非零的值, 存放在稀疏数组中
39         int count = 0;
40         for (int i = 0; i < array1.length; i++) {
41             for (int j = 0; j < array1[i].length; j++) {
42                 if (array1[i][j] != 0){
43                     count++;
44                     array2[count][0] = i;
45                     array2[count][1] = j;
46                     array2[count][2] = array1[i][j];
47                 }
48             }
49         }
50         //输出稀疏数组
51         System.out.println("稀疏数组");
52         for (int i = 0; i < array2.length; i++) {
53             System.out.println(array2[i][0]+"\t"+
54                     array2[i][1]+"\t"+
55                     array2[i][2]);
56         }
57 
58         System.out.println("================================");
59         System.out.println("还原");
60         //1、读取稀疏数组
61         int[][] array3 = new int[array2[0][0]][array2[0][1]];
62         //2、给其中的元素还原它的值
63         for (int i = 1; i < array2.length; i++) {
64             array3[array2[i][0]][array2[i][1]] = array2[i][2];
65         }
66         //3、打印
67         for (int[] ints : array3) {
68             for (int anInt : ints) {
69                 System.out.print(anInt+" ");
70             }
71             System.out.println("\n");
72         }
73     }
74 }

 

标签:int,array2,System,冒泡排序,稀疏,数组,println,out
来源: https://www.cnblogs.com/xiao-wang-tong-xue/p/15988379.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有