国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java實現兩個隨機數組合并進行排序的方法

Java實現兩個隨機數組合并進行排序的方法

2021-12-27 14:01小Du猿 Java教程

本文主要介紹了Java實現兩個隨機數組合并進行排序的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

前言:

? 小Du猿結束"996ICP"CRUD開發工作生活,重新進入了校園學習生活。本周開始了第二周數據結構的基礎知識學習,大愛向宇老師的上課方式,用生動形象的方式講解抽象概念,但一開口就是LSP.O(∩_∩)O,向向宇大佬致敬,菜雞小Du猿投來膜拜的眼光。

? 此博客用Java實現線性表的思想,實現數組的排序和序列化。序列化的排序方式采用冒泡排序的方式,但小Du猿正在優化該算法。原因為:采用冒泡排序的方式時間復雜度較大,正在考慮使用快速排序法;但此篇博客使用冒泡排序的方式,便于理解概念。

 

一、什么是線性表

Q1:什么是線性表:

A1:線性表是由N個類型相同的數據元素的有限序列(換句話描述:是具有像線一樣的性質的表)

Q2: 線性表的順序存儲結構:

A2: 一段地址連續的存儲單元依次存儲線性表的數據元素,使得線性表中在邏輯結構上相鄰的數據元素存儲在連續的物理存儲單元中。

Q3:線性表的優缺點:

A3:

優點:1.無須為表示表中元素之間的邏輯關系而增加額外的存儲空間。

? 2. 可以快速地存取表中任一位置的元素。

缺點:1.插入和刪除操作需要移動大量元素。

? 2.當線性表長度變化較大時,難以確定存儲空間的容量。
? 3.造成存儲空間的“碎片”。

 

二、ArrayList集合

? 上課時理解線性表的基本概念后,我不禁想到了"ArrayList"集合。而ArrayList的特征基本與線性表大致符合。所以我在此梳理一下

ArrayList的概念

  • ArrayList的底層是Object類的數組,默認長度是10,超過10后,長度變為原長度的1.5倍。
  • 可以簡單的認為是一個動態數組;實際上ArrayList就是用數組實現的,長度不夠時,調用Arrays.copyOf方法,拷貝當前數組到一個新的長度更大的數組。

特點:

  • 隨機訪問速度快,插入和移除性能較差(數組的特點);
  • 支持null元素的存在;
  • 有順序結構;
  • 元素可以重復;
  • 但線程不安全。

梳理ArrayList集合后,我們可以大概將線性表的特征約等于ArrayList集合,頓時小Du猿"悟了"⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄

 

三、用線性表的思想排序數組間排序

實現的原理小Du用圖的方式整理出來:

Java實現兩個隨機數組合并進行排序的方法

代碼如下:

package com.company;

import java.util.Arrays;
import java.util.Random;

/**
* @author Du Shun Chang
* @version 1.0
* @date 2021/9/7 22:48
* @Todo: 1.隨機產生兩個數組,并進行兩個數組的排序。2.排序好的數組,進行排序合并
* @QQ:1300442386
*/
public class Mian {
  public static void main(String[] args) {
      
//初始化兩個長度為10的數組
      Random random = new Random();
      int[] a = new int[10];
      int[] b = new int[10];
//隨機生成1000以內的數,并賦值到數組中
      for (int i = 0; i < 10; i++) {
          a[i] = random.nextInt(1000);
          b[i] = random.nextInt(1000);
      }
      System.out.println("隨機產生數組A:" + Arrays.toString(a));
      System.out.println("隨機產生數組B:" + Arrays.toString(b));
      int temp = 0;
//重新排序隨機數組A
      for (int i = 0; i < 10; i++) {
          for (int j = i; j < 10; j++) {
              if (a[i] >= a[j]) {
                  // 定義中間變量值
                  temp = a[i];
                  // 換位賦值
                  a[i] = a[j];
                  // 獲得新位置
                  a[j] = temp;
              }
          }
      }
      System.out.println("排序后的數組A:" + Arrays.toString(a));
//重新排序隨機數組B
      for (int i = 0; i < 10; i++) {
          for (int j = i; j < 10; j++) {
              if (b[i] >= b[j]) {
                  // 定義中間變量值
                  temp = b[i];
                  // 換位賦值
                  b[i] = b[j];
                  // 獲得新位置
                  b[j] = temp;
              }
          }
      }
      System.out.println("排序后的數組B:" + Arrays.toString(b));
//對新的數組進行合并及進行排序
      int l = a.length + b.length;
      int[] temps = new int[l];
      int i = 0, j = 0, h = 0;
      while (i < a.length || j < b.length) {
          if (i == a.length && j < b.length) {
              temps[h++] = b[j++];
          } else if (i < a.length && j == b.length) {
              temps[h++] = a[i++];
          } else if (a[i] <= b[j]) {
              temps[h++] = a[i++];
          } else if (a[i] > b[j]) {
              temps[h++] = b[j++];
          }
      }
      System.out.print("排序后最新數組:" + Arrays.toString(temps));
  }
}

運行結果為:

Java實現兩個隨機數組合并進行排序的方法

 

四、冒泡排序:

冒泡排序:
在數組中兩兩進行比較,較大數往后移動,與下一位數再次兩兩比較,依次循環排序。
原理圖如下:

Java實現兩個隨機數組合并進行排序的方法

代碼如下:

/**
* @author Du Shun Chang
* @version 1.0
* @date 2021/9/8 22:48
* @Todo: 冒泡排序演示
* @QQ:1300442386
*/
public class Mian{
  public static void main(String[] args) {
 int[] arr = {6, 3, 8, 2, 9, 1};
      System.out.println("排序前數組為:" + Arrays.toString(arr));
      for (int s = 0; s < arr.length - 1; s++) {//外層循環控制排序趟數
          for (int k = 0; k < arr.length - 1 - s; k++) {//內層循環控制每一趟排序多少次
              if (arr[k] > arr[k + 1]) {
                  int temp1 = arr[k];
                  arr[k] = arr[k + 1];
                  arr[k + 1] = temp1;
              }
          }
      }
      System.out.println("排序后數組為:" + Arrays.toString(arr));
       }
      }

結果為:

Java實現兩個隨機數組合并進行排序的方法

到此這篇關于Java實現兩個隨機數組合并進行排序的方法的文章就介紹到這了,更多相關Java 隨機數排序內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_44985115/article/details/120209444

延伸 · 閱讀

精彩推薦
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

    Java BufferWriter寫文件寫不進去或缺失數據的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數據的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發現了對于集合操作轉換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關于Java8中S...

    阿杜7482021-02-04
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關于小米推送Java代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩中求8032021-07-12
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

    這篇文章主要介紹了xml與Java對象的轉換詳解的相關資料,需要的朋友可以參考下...

    Java教程網2942020-09-17
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經有好久沒有升過級了。升級完畢重啟之后,突然發現好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
主站蜘蛛池模板: 国产精品乱码久久 | www.中文字幕.com | 久久久久久国产一级毛片高清版 | 日韩成人精品 | 丝袜久久 | 激情五月婷婷在线 | 亚洲免费观看 | 久草热8精品视频在线观看 毛片黄片免费观看 | 欧美中文字幕一区二区三区亚洲 | 亚洲欧美日韩精品久久奇米色影视 | 91一区二区| 久久精品高清 | 91黄在线观看| 免费一区二区三区四区 | 久久久精品一区二区 | 成人免费一区二区三区视频网站 | 69久久夜色精品国产69乱www | 欧美综合激情 | 午夜影院免费观看视频 | 日本一区二区三区视频免费看 | 精品久久久久久久久久 | 日韩欧美手机在线 | 亚洲午夜视频在线观看 | 五月天婷婷精品 | 国产成人精品久久二区二区91 | 亚洲日本国产 | 青青草在线视频免费观看 | 日韩中文字幕视频 | 精品一区二区久久久久久久网站 | 欧美日韩精品免费 | 午夜剧场在线免费观看 | 成人黄色在线观看 | 小泽玛丽娅 | 亚洲 欧美 日韩在线 | 91av免费| 国产成人精品综合 | 欧美精品福利视频 | 九九热视频在线观看 | 久久久免费电影 | 美日韩免费视频 | 久久久久久久 |