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

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

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

1、冒泡排序

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

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

因?yàn)榕判虻倪^(guò)程中,各元素不斷接近自己的位置,如果一趟比較下
來(lái)沒(méi)有進(jìn)行過(guò)交換,就說(shuō)明序列有序。

圖解冒泡排序算法的過(guò)程

原始數(shù)組: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

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

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

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

(3) 如果我們發(fā)現(xiàn)在某趟排序中,沒(méi)有發(fā)生一次交換, 可以提前結(jié)束冒泡排序。這個(gè)就是優(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趟排序,將最大的數(shù)排在最后
        int temp=0;//臨時(shí)變量
        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)+"趟排序的結(jié)果");
        System.out.println(Arrays.toString(arr));
        }
     
        }
	}

運(yùn)行結(jié)果:

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

2、選擇排序法

排序思路:

原始的數(shù)組 : 101, 34, 119, 1

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

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

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

說(shuō)明:

1.選擇排序一共有 數(shù)組大小 - 1 輪排序

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

  • 2.1先假定當(dāng)前這個(gè)數(shù)是最小數(shù)
  • 2.2 然后和后面的每個(gè)數(shù)進(jìn)行比較,如果發(fā)現(xiàn)有比當(dāng)前數(shù)更小的數(shù),就重新確定最小數(shù),并得到下標(biāo)
  • 2.3 當(dāng)遍歷到數(shù)組的最后時(shí),就得到本輪最小數(shù)和下標(biāo)
  • 2.4 交換 [代碼中再繼續(xù)說(shuō) ]
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;//假定當(dāng)前下標(biāo)為最小值下標(biāo)
            int minnumber=arr[j];//假定當(dāng)前元素為最小值
            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));
        }
    }
}

總結(jié)

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

相關(guān)文章

最新評(píng)論

大英县| 博乐市| 阿瓦提县| 抚远县| 福清市| 喀什市| 泌阳县| 临沧市| 突泉县| 稻城县| 镇宁| 桦南县| 海门市| 龙陵县| 博客| 桂东县| 伊宁县| 兴海县| 搜索| 丰镇市| 丹东市| 石林| 吕梁市| 海安县| 新乐市| 宝坻区| 平山县| 名山县| 西平县| 茶陵县| 益阳市| 湖口县| 南城县| 调兵山市| 芦山县| 遂昌县| 宁陕县| 枣阳市| 永泰县| 申扎县| 夏津县|