最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java冒泡排序和選擇排序詳解

 更新時間:2021年07月02日 14:17:45   作者:Stars-Nine  
這篇文章主要介紹了java數組算法例題代碼詳解(冒泡排序,選擇排序),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1、冒泡排序

冒泡排序(Bubble Sorting)的基本思想是:通過對待

排序序列從前向后(從下標較小的元素開始),依次比較相鄰元素的值,若發(fā)現逆序則交換,使值較大的元素逐漸從前移向后部,就象水底下的氣泡一樣逐漸向上冒。

因為排序的過程中,各元素不斷接近自己的位置,如果一趟比較下
來沒有進行過交換,就說明序列有序。

圖解冒泡排序算法的過程

原始數組:3, 9, -1, 10, 20

第一趟排序

(1) 3, 9, -1, 10, 20 // 如果相鄰的元素逆序就交換

(2) 3, -1, 9, 10, 20

(3) 3, -1, 9, 10, 20

(4) 3, -1, 9, 10, 20

第二趟排序

(1) -1, 3, 9, 10, 20 //交換

(2) -1, 3, 9, 10, 20

(3) -1, 3, 9, 10, 20

第三趟排序

(1) -1, 3, 9, 10, 20

(2) -1, 3, 9, 10, 20

第四趟排序

(1) -1, 3, 9, 10, 20

小結冒泡排序規(guī)則

(1) 一共進行 數組的大小-1 次 大的循環(huán)

(2)每一趟排序的次數在逐漸的減少

(3) 如果我們發(fā)現在某趟排序中,沒有發(fā)生一次交換, 可以提前結束冒泡排序。這個就是優(yōu)化

import java.util.Arrays;
public class BubbleSort {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        int arr[]= {3,9,-1,10,-2};
        //第i+1趟排序,將最大的數排在最后
        int temp=0;//臨時變量
        for(int i=0;i<arr.length-1;i++) {//定義第幾輪排序
       	 for(int j=0;j<arr.length-1-i;j++) {
       		 if(arr[j+1]<arr[j]) {
       		  temp=arr[j];
       		 arr[j]=arr[j+1];
       		 arr[j+1]=temp;
       		 }
       		 }
        System.out.println("輸出第"+(i+1)+"趟排序的結果");
        System.out.println(Arrays.toString(arr));
        }
     
        }
	}

運行結果:

輸出第1趟排序的結果
[3, -1, 9, -2, 10]
輸出第2趟排序的結果
[-1, 3, -2, 9, 10]
輸出第3趟排序的結果
[-1, -2, 3, 9, 10]
輸出第4趟排序的結果
[-2, -1, 3, 9, 10]

2、選擇排序法

排序思路:

原始的數組 : 101, 34, 119, 1

第一輪排序 : 1, 34, 119, 101

第二輪排序 : 1, 34, 119, 101

第三輪排序 : 1, 34, 101, 119

說明:

1.選擇排序一共有 數組大小 - 1 輪排序

2.每1輪排序,又是一個循環(huán), 循環(huán)的規(guī)則(代碼)

  • 2.1先假定當前這個數是最小數
  • 2.2 然后和后面的每個數進行比較,如果發(fā)現有比當前數更小的數,就重新確定最小數,并得到下標
  • 2.3 當遍歷到數組的最后時,就得到本輪最小數和下標
  • 2.4 交換 [代碼中再繼續(xù)說 ]
import java.util.Arrays;
public class QuickSort {
    public static void main(String[] args) {
       //int []arr={ 8,3,2,1,7,4,6,5};
       int [] arr={101,34,109,1};
       quicksort(arr);
    }
    public static void quicksort(int []arr){
        for(int j=0;j<arr.length-1;j++) {
            int minindex=j;//假定當前下標為最小值下標
            int minnumber=arr[j];//假定當前元素為最小值
            for (int i = 1+j; i < arr.length; i++) {
                if (arr[i] < minnumber) {//若假定最小值并不是最小的
                    minnumber = arr[i];//重置minnumber
                    minindex = i;//重置minindex
                }
            }
            //將最小值交換
            arr[minindex] = arr[j];
            arr[j] = minnumber;
            System.out.println("第"+(j+1)+"輪");
            System.out.println(Arrays.toString(arr));
        }
    }
}

總結

本篇文章就到這里了,希望可以給你帶來一些幫助,也希望您能夠多多關注腳本之家的更多內容!

相關文章

  • SSH框架網上商城項目第16戰(zhàn)之Hibernate二級緩存處理首頁熱門顯示

    SSH框架網上商城項目第16戰(zhàn)之Hibernate二級緩存處理首頁熱門顯示

    這篇文章主要介紹了SSH框架網上商城項目第16戰(zhàn)之Hibernate的二級緩存處理首頁的熱門顯示,感興趣的小伙伴們可以參考一下
    2016-06-06
  • java版微信和支付寶退款接口

    java版微信和支付寶退款接口

    這篇文章主要為大家詳細介紹了java版微信退款接口和java版支付寶退款接口,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • SpringMVC打印請求參數和響應數據最優(yōu)方案

    SpringMVC打印請求參數和響應數據最優(yōu)方案

    項目中經常需要打印http請求的參數和響應數據,本文給大家講解如何在SpringMVC打印請求參數和響應數據最優(yōu)方案,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • Springboot集成MongoDB無認證與開啟認證的配置方式

    Springboot集成MongoDB無認證與開啟認證的配置方式

    本文主要介紹了Springboot集成MongoDB無認證與開啟認證的配置方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-03-03
  • MyBatis如何使用PageHelper實現分頁查詢

    MyBatis如何使用PageHelper實現分頁查詢

    這篇文章主要介紹了MyBatis如何使用PageHelper實現分頁查詢,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • idea debug沒有force step into的問題解決

    idea debug沒有force step into的問題解決

    本文主要介紹了IDEA Debug中ForceStepInto按鈕消失的問題及解決方法,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-10-10
  • Java實現的簡易記事本

    Java實現的簡易記事本

    這篇文章主要介紹了Java實現的簡易記事本,較為詳細的分析了基于java實現記事本程序的完整過程,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • 詳解SpringBoot注冊Windows服務和啟動報錯的原因

    詳解SpringBoot注冊Windows服務和啟動報錯的原因

    這篇文章主要介紹了詳解SpringBoot注冊Windows服務和啟動報錯的原因,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • IntelliJ IDEA(或者JetBrains PyCharm)中彈出

    IntelliJ IDEA(或者JetBrains PyCharm)中彈出"IntelliJ IDEA License

    今天小編就為大家分享一篇關于IntelliJ IDEA(或者JetBrains PyCharm)中彈出"IntelliJ IDEA License Activation"的解決辦法,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • SpringBoot接口防抖(防重復提交)的實現方法

    SpringBoot接口防抖(防重復提交)的實現方法

    SpringBoot接口防抖主要通過前端和后端兩種方式實現,前端通過JavaScript控制用戶操作,后端通過攔截器、過濾器等機制控制請求頻率,文中介紹的非常詳細,感興趣的可以了解一下
    2024-11-11

最新評論

灵宝市| 普陀区| 富阳市| 阿图什市| 昌宁县| 腾冲县| 清涧县| 台州市| 英吉沙县| 温州市| 淅川县| 石屏县| 武陟县| 泰安市| 突泉县| 商洛市| 沐川县| 剑河县| 晋城| 英山县| 贵港市| 封开县| 尉氏县| 综艺| 申扎县| 正阳县| 丰县| 沙洋县| 陆良县| 凌源市| 阿克陶县| 新营市| 兴国县| 普宁市| 延川县| 瓦房店市| 同德县| 德格县| 新津县| 江陵县| 东方市|