亚洲欧美日韩熟女|做爱高潮视频网址|国产一区二区三级片|国产Av中文字幕www.性色av|亚洲婷婷永久免费|国产高清中文字幕|欧美变态网站久re视频精品|人妻AV鲁丝第一页|天堂AV一区二区在线观看|综合 91在线精品

java 隨機(jī)正整數(shù) 排序 Java產(chǎn)生隨機(jī)數(shù)并排序

2023-06-14

第1部分:隨機(jī)數(shù)


1.1Math.random()函數(shù)

Math.random隨機(jī)生成0~1個(gè)房間的隨機(jī)點(diǎn)數(shù),前面包含(0.00)后不包含(1)


通常沒(méi)有什么實(shí)際意義,需要轉(zhuǎn)換成整數(shù)。


例程:生成30-50的隨機(jī)數(shù)量


int t = Math.random*20 30;


1.2 Random類:

語(yǔ)法:Random r = new Random();


常用的方法:


nextInt();//在int類型取值范圍內(nèi)隨機(jī)生成整數(shù),對(duì)我們來(lái)說(shuō)意義不大。


nextInt(參數(shù));在指定范圍內(nèi)隨機(jī)生成整數(shù)(常見(jiàn))


例: nextInt(100);在0~100之間隨機(jī)生成整數(shù)。


訓(xùn)練:


雙色球生成結(jié)合數(shù)組和隨機(jī)數(shù)量完成。


需求: 紅球 1~33(包含) 在號(hào)碼中隨機(jī)生成6個(gè)不重復(fù)的號(hào)碼添加到球的數(shù)組中去藍(lán)球。 在1~16(包括)號(hào)碼中隨機(jī)生成一個(gè)號(hào)碼,擴(kuò)展到紅球數(shù)組。


分析: 球的數(shù)組 int[] bool=new int[6]


第一個(gè)球: 隨機(jī)生成一個(gè)數(shù)字,添加到數(shù)組中,后面生成的每個(gè)球都需要與前面的每個(gè)球進(jìn)行比較。只有在不重復(fù)的情況下才能添加到數(shù)組中。如果重復(fù),放棄,重新生成比較,紅球功能會(huì)在6個(gè)球全部添加到數(shù)組中時(shí)完成。藍(lán)球可以通過(guò)擴(kuò)展添加到bool數(shù)組中;


例程:DoubleColerBall.java


1 package random;
 2 
 3 import java.util.Arrays;
 4 import java.util.Random;
 5 
 6 public class DoubleColerball {
 7     
 8     public static void main(String[] args) {
 9         
10         Random r = new Random();
11         
12         int[] redBall =new int[6];
13         int index = 0;
14         
15         redBall[index  ] = r.nextInt(33) 1;            //生成第一個(gè)數(shù)字
16 
17         loop:        while(true) {
18             
19             int x = r.nextInt(33) 1;
20             
21             //判斷x的生成,是否在數(shù)組中
22             for (int j=0;  j

View Code


第2節(jié)有幾種排序算法


冒泡排序算法2.1


2.1.1原理實(shí)現(xiàn)

將數(shù)列從小到大排序(或從大到小),將每個(gè)位置數(shù)與下一個(gè)位置數(shù)進(jìn)行比較。如果比后面的數(shù)字大,可以交換位置,一輪可以得到最大數(shù)字,第二輪可以得到第二大數(shù)字。...


2.1.2實(shí)例分析

例: [6,8,5,7,4]想要的最終結(jié)果是[4,5,6,7,8]


6 8 5 7 4


第一輪第一輪: 6 8 5 7 4


第一輪第二輪: 6 5 8 7 4


第三輪第一輪: 6 5 7 8 4


第四輪第一輪: 6 5 7 4 8


第二輪第一次: 5 6 7 4 8


第二輪第二輪: 5 6 7 4 8


第三輪第二輪: 5 6 4 7 8


第三輪第一輪: 5 6 4 7 8


第三輪第二輪: 5 4 6 7 8


第四輪第一次: 4 5 6 7 8


規(guī)則:輪數(shù)每增加一次,比較次數(shù)就會(huì)減少一次。


Demo2.java



View Code


2.2 選擇排序方法:


2.2.1原理實(shí)現(xiàn)

選擇排序方法:


第一趟,等待排序記錄r[1]~r[n]選擇最小的記錄,與r[1]交換;


第二趟,等待排序記錄r[2]~r[n]選擇最小的記錄,與r[2]交換;以此類推,第一趟在等待排序記錄r[i]~r[n]選擇最小的記錄,把它和r[i]交換,使有序序列持續(xù)增長(zhǎng),直至所有排序完成。


例:


最初的序列:{49 27 65 97 76 12 38}


第1趟:12和49交換:12{27 65 97 76 49 38}


第2趟:27不動(dòng) :12 27{65 97 76 49 38}


第3趟:65和38交換:12 27 38{97 76 49 65}


第4趟:97和49交換:12 27 38 49{76 97 65}


第5趟:76和65交換:12 27 38 49 65{97 76}


第6趟:97和76交換:12 27 38 49 65 76 97 完成


分析:


在設(shè)定數(shù)組中,第一個(gè)數(shù)字是最小數(shù)字。


將其與數(shù)組后面的每個(gè)數(shù)字進(jìn)行比較,如果有較小的交換兩個(gè)位置,


Demo2.java


1 package random;
 2 
 3 import java.util.Arrays;
 4 /**
 5  * 
 6  * @項(xiàng)目名稱:JavaSEDay07m
 7  * @模塊化功能:實(shí)現(xiàn)排序選擇
 8  * @模塊版本:
 9  * @JDKVersions:JDK 8.0
10  * @author:  Kanekiyi
11  */
12 public class Demo3 {
13     
14     public static void main(String [] args) {
15         int[] arr={5,9,2,807,89,88};
16         int temp=0;
17         
18         //表面循環(huán)依次假設(shè)數(shù)組中的每個(gè)數(shù)是最小值。
19         for(int i=0; iarr[j]) {
25                      min = arr[j];
26                      minIndex = j;
27                 }
28                 
29             }
30             //交換最小值
31             temp = arr[i];
32             arr[i]  = arr[minIndex];
33             arr[minIndex] = temp;
34             
35         }
36         System.out.println(Arrays.toString(arr));
37 
38     }
39 }

View Code


2.3 插入排序法:


2.3.1原理實(shí)現(xiàn)

插入排序類似于整理?yè)淇伺?,將每張牌插入其它有序的牌中?/p>


插入式排序由N-1趟排序組成,對(duì)于P=1至N-1趟,插入式排序確保從位置0到位置P上的元素已經(jīng)排序。


簡(jiǎn)單來(lái)說(shuō),插入排序總共需要排序N-1次。從index為1開(kāi)始,我們將該位置的元素與之前的元素進(jìn)行比較,并將其放置在合適的位置。這樣循環(huán)下來(lái)之后,就是有序數(shù)組了。


2.3.2實(shí)例分析

Demo2.java


1     //插入排序算法
 2     public static void insertSort() {
 3         int[] arr = {3,6,8,4,2,2,9};
 4         int[] arr2 = new int[arr.length];
 5         arr2[0] = arr[0];
 6         int temp=0;
 7 
 8         for(int i=1; iarr2[k]) {            //比較插入數(shù)和原數(shù)組中的數(shù)并交換位置。
14                         temp = arr2[k];
15                         arr2[k] = arr[i];
16                         arr[i] = temp;
17                     }        
18                 }        
19             }        
20             //arr2[i] = temp;
21         }
22         System.out.println(Arrays.toString(arr2));
23     }

View Code


方法更加簡(jiǎn)單。


參照:


綜合實(shí)踐:利用數(shù)組和數(shù)據(jù)結(jié)構(gòu)完成學(xué)生管理系統(tǒng)(SMS1).0)的研發(fā):


要求:1、為了保存數(shù)據(jù),建立學(xué)生數(shù)組


2、數(shù)字選擇功能通過(guò)鍵盤輸入,不同的數(shù)字完成不同的功能,需要對(duì)學(xué)生數(shù)字完成增刪功能;


代碼:SMS.java


1 package random;
  2 
  3 import java.util.Arrays;
  4 import java.util.Scanner;
  5 
  6 /**
  7  * 學(xué)生管理系統(tǒng)1.0版本
  8  * @author  Kanekiyi
  9  * 分析:1、while 循環(huán)
 10  *            2、Scannre
 11  *               3、if 支系
 12  *               4、數(shù)組 擴(kuò)容 縮容 遍歷
 13  *      String
 14  * */
 15 
 16 public class SMS {
 17     
 18     public static void main(String[] args) {
 19         System.out.println(“歡迎使用學(xué)生管理系統(tǒng)1.0版本”);
 20         
 21         String[] students = {“劉一”,"孫二","張三","李四"};
 22         
 23         Scanner sc = new Scanner(System.in);
 24         
 25         while(true) {
 26             System.out.println("1.加入學(xué)生 2.刪掉學(xué)生 3.修改學(xué)生 4.學(xué)生目錄 5.查詢學(xué)生 6.撤出");
 27             System.out.println(“請(qǐng)輸入數(shù)字選擇功能”);
 28 
 29             int type = sc.nextInt();
 30             
 31             增加學(xué)生//1
 32             if (type ==1) {
 33                 System.out.println(“請(qǐng)輸入添加學(xué)生姓名”);
 34                 String name = sc.next();
 35                 students = Arrays.copyOf(students,students.length 1);
 36                 students[students.length-1] = name;
 37                 System.out.println(“添加成功”);
 38             }
 39         
 40             //2、刪掉學(xué)生
 41             if (type ==2) {
 42                 boolean flag = false;
 43                 System.out.println(“請(qǐng)輸入需要?jiǎng)h除的學(xué)生名稱”);
 44                 String name = sc.next();
 45 
 46                 for(int i=0; i






本文為轉(zhuǎn)載內(nèi)容,我們尊重原作者對(duì)本文的作權(quán)。如有內(nèi)容錯(cuò)誤或侵權(quán)問(wèn)題,歡迎原作者聯(lián)系我們更正或刪除內(nèi)容。

本文僅代表作者觀點(diǎn),版權(quán)歸原創(chuàng)者所有,如需轉(zhuǎn)載請(qǐng)?jiān)谖闹凶⒚鱽?lái)源及作者名字。

免責(zé)聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請(qǐng)及時(shí)與我們聯(lián)系進(jìn)行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com