一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

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

服務器之家 - 編程語言 - Java教程 - java冒泡排序和選擇排序詳解

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

2021-09-24 11:46Stars-Nine Java教程

這篇文章主要介紹了java數組算法例題代碼詳解(冒泡排序,選擇排序),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1、冒泡排序

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

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

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

圖解冒泡排序算法的過程

原始數組: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

小結冒泡排序規則

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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輪排序,又是一個循環, 循環的規則(代碼)

  • 2.1先假定當前這個數是最小數
  • 2.2 然后和后面的每個數進行比較,如果發現有比當前數更小的數,就重新確定最小數,并得到下標
  • 2.3 當遍歷到數組的最后時,就得到本輪最小數和下標
  • 2.4 交換 [代碼中再繼續說 ]
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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));
        }
    }
}

總結

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

原文鏈接:https://blog.csdn.net/weixin_55782195/article/details/116059075

延伸 · 閱讀

精彩推薦
  • Java教程升級IDEA后Lombok不能使用的解決方法

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

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

    程序猿DD9332021-10-08
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

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

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

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

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

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

    阿杜7472021-02-04
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

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

    littleschemer13532021-05-16
  • Java教程20個非常實用的Java程序代碼片段

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

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

    lijiao5352020-04-06
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

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

    Java教程網2942020-09-17
  • Java教程小米推送Java代碼

    小米推送Java代碼

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

    富貴穩中求8032021-07-12
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

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

    大行者10067412021-08-30
主站蜘蛛池模板: 成年人在线免费看 | 精品欧美一区二区三区四区 | 日本在线观看免费高清 | 欧美牛逼aa | 嫩草影院国产 | 日本中文字幕一区二区高清在线 | 极品蜜桃臀美女啪啪 | 国产三区二区 | 色老板在线免费观看 | 欧美日韩国产成人综合在线影院 | 香蕉久久久久久狠狠色 | 99精品在线视频 | 欧美草比视频 | 美女操穴视频 | 男同志与动人物zozotv | 2015小明台湾永久区域免费 | 国产亚洲综合精品一区二区三区 | chinese老太granny chinese国产人妖hd | 四虎海外影院 | 亚洲欧美优优色在线影院 | 成人毛片1024你懂的 | 俄罗斯15一16处交 | 日本一区免费观看 | 精品久久久久久久久久香蕉 | 国产成人精品s8sp视频 | 爽爽窝窝午夜精品一区二区 | 美女黄a| 手机看片自拍自自拍日韩免费 | 国产欧美日韩精品一区二区三区 | 铁牛tv 在线观看 | 99久久免费国产精品热 | 国产一区二区三区在线 | 免费成年人在线视频 | caoporm国产精品视频免费 | www.国产一区二区三区 | www.在线观看视频 | 娇喘高潮教室h | 国产caonila在线观看 | 亚洲精品成人a | 网友自拍咪咪爱 | 成人网免费视频 |