成人免费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-03-13 10:08:31

數據結構算法

2023-04-27 09:13:20

排序算法數據結構

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

數據結構算法歸并排序

2021-04-16 09:40:52

Java數據結構算法

2009-08-03 17:38:12

排序算法C#數據結構

2023-10-27 07:04:20

2021-04-22 10:07:45

Java數據結構算法

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

算法數據結構

2021-05-12 09:07:09

Java數據結構算法
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜天堂 | 不卡的av在线| av官网在线 | 久久九| 亚洲a视 | 亚洲一区二区三区在线观看免费 | 免费成人在线网站 | 久久久久九九九女人毛片 | 国产亚洲精品美女久久久久久久久久 | 日韩在线观看一区二区三区 | 日日碰狠狠躁久久躁婷婷 | 久久精品小视频 | 日本爱爱 | 免费看a| 香蕉二区 | av网站在线免费观看 | 中文一区 | 色www精品视频在线观看 | 亚洲高清中文字幕 | 久久黄色网 | 欧美成人a∨高清免费观看 色999日韩 | 国产精品国产三级国产aⅴ中文 | 91传媒在线观看 | 99精品视频在线观看 | 国产精品一区二区免费 | 夜久久 | 日韩精品一区二区三区视频播放 | 久久久久久久久久久爱 | 久久国产亚洲精品 | 久久久综合精品 | 成人久久 | 久久这里只有精品首页 | 日韩二区| 免费a大片 | 99reav| 午夜影视网 | 欧美一区二区三区在线观看视频 | 亚洲91精品 | 午夜视频一区二区 | 人人干超碰 | 综合久久色 |