成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

數據結構與算法:冒泡排序

開發 前端
按照冒泡排序的思想,我們要把相鄰的元素兩兩比較,當一個元素大于右側相鄰元素時,交換它們的位 置;當一個元素小于或等于右側相鄰元素時,位置不變。

一、定義

冒泡排序是最基礎的排序算法。

冒泡排序的英文是bubble sort,它是一種基礎的交換排序。

冒泡排序這種排序算法的每一個元素都可以像小氣泡一樣,根據自身大小,一點一點地向著數組的一側移動。

二、思路

按照冒泡排序的思想,我們要把相鄰的元素兩兩比較,當一個元素大于右側相鄰元素時,交換它們的位 置;當一個元素小于或等于右側相鄰元素時,位置不變。

經過第一輪后: 元素9作為數列中最大的元素,就像是汽水里的小氣泡一樣,“漂”到了最右側。

每一輪結束都會有一個元素被移到最右側。

三、實現

1、冒泡算法

public static void main(String[] args) {
int[] array = {1,6,2,5,3,0,3,5,4};
array = bubbleSortBySortedExchanged(array);
for(int i =0 ; i < array.length; i++){
System.out.println(array[i]);
}

}

public static int[] bubbleSort(int[] array){
//有array.length-1個數字需要交換
for(int i = 0; i < array.length - 1; i++){
//每個數字比較的次數是array.length-1-i
for(int j = 0; j < array.length - 1 - i; j++){
//如果當前值大于后一個值,則將更大的值移到后一位
if(array[j] > array[j+1]){
swap(array[j],array[j+1]);
}
}
}
return array;
}

//互相交換值
public static void swap(int a,int b){
int temp = a;
a = b;
b = temp;
}

2、冒泡算法優化

(1)外層優化

第6輪已經可以結束了,也就是如果不需要交換了,則說明已經排好序了

思路:在外層循環處,設置標志isSort,默認為排好,如果不交換則跳出本次循環

(2)內部優化

已經被移到右側的元素不用再參與比較了

思路:設置lastExchangeIndex標志單輪比較中最后一次比較的數值下標,下一輪比較就以lastExchangeIndex結束。

private static  int[] bubbleSortBySortedExchanged(int[] array){
if(array == null || array.length < 2){
return array;
}
//單輪比較中最后一次交換的數值下標
int lastExchangeIndex = 0;
int sortBorder = array.length - 1;
//不交換則表示已排好
boolean isSorted = true;
for(int i = 0 ;i < array.length - 1; i++){
for(int j = 0; j < sortBorder ; j++){
if(array[j] > array[j+1]){
isSorted = false;
int temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
lastExchangeIndex = j;
}
}
sortBorder = lastExchangeIndex;
if(isSorted){
break;
}
}
return array;
}

四、復雜度

時間復雜度:O( n的2次方 )

空間復雜度:O(1),也就是原地排序

穩定性:相等元素之間原有的先后順序不變,也就是穩定排序

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2023-03-06 08:10:52

數據結構算法數據

2023-03-10 08:07:39

數據結構算法計數排序

2023-03-07 08:02:07

數據結構算法數列

2023-04-27 09:13:20

排序算法數據結構

2023-03-13 10:08:31

數據結構算法

2019-03-29 09:40:38

數據結構算法前端

2021-07-16 04:57:45

Go算法結構

2021-03-23 08:33:22

Java數據結構算法

2021-04-15 09:36:44

Java數據結構算法

2020-10-21 14:57:04

數據結構算法圖形

2023-03-08 08:03:09

數據結構算法歸并排序

2023-10-27 07:04:20

2021-04-16 09:40:52

Java數據結構算法

2021-04-22 10:07:45

Java數據結構算法

2009-08-03 17:38:12

排序算法C#數據結構

2021-10-18 11:29:48

奇偶排序數組數據結構算法

2023-11-06 06:43:23

單鏈表查詢數據結構

2017-08-31 09:45:43

JavaArrayList數據

2023-09-15 10:33:41

算法數據結構

2023-02-08 07:52:36

跳躍表數據結構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲第一av | 自拍偷拍第一页 | 国产剧情一区 | 午夜国产一级 | 最新一级毛片 | 欧美激情在线精品一区二区三区 | 视频在线一区二区 | 亚洲欧美日韩电影 | 一级高清 | 91精品国产色综合久久 | 玖玖操| 日本a在线 | 成人精品国产一区二区4080 | 人人干人人超 | 国产精品69av | 奇米视频777 | 日韩一区二区在线视频 | 成人一区二区三区在线观看 | 国产精品久久久久久久久图文区 | 欧美一区二区三区大片 | 久久在线看 | 狠狠av| 亚洲精品免费在线观看 | 久色视频在线观看 | 日韩中文一区 | 国产视频一区二区 | 精品国产一区二区三区av片 | 91免费版在线 | 浴室洗澡偷拍一区二区 | 亚洲欧洲日韩 | 精品久久国产 | 国产综合久久久久久鬼色 | 国产在线观 | 久久久久亚洲精品 | 欧美性tv| 国产亚洲欧美在线 | 国产精品日本一区二区不卡视频 | 国产精品美女一区二区 | 蜜臀久久99精品久久久久久宅男 | 神马久久久久久久久久 | 有码一区 |