資料結構之冒泡 選擇排序

2021-10-09 02:57:06 字數 1241 閱讀 3495

氣泡排序和選擇排序都屬於內部排序,這兩種排序方式的平均時間複雜度和最壞時間複雜度都是

一、氣泡排序

氣泡排序是對待排序序列下標有小到大開始遍歷比較,若這兩個元素逆序,則交換,不逆序則繼續比較一下乙個,比較陣列長度-1趟即可。若是某一趟沒有交換,則證明這個陣列序列有序,退出即可。**如下:

/**

* 氣泡排序:每一趟都只是比較相鄰兩個數的大小,再按照給定規則交換

* 優化:要是某一趟中沒有進行資料交換,證明這個陣列是有序的,不用在進行排序,

* 設定flag標誌位判斷是否進行了交換

*/public class bubblesort ;

int arr = ;

bubblesort bubblesort = new bubblesort();

bubblesort.sort(arr);

bubblesort.print(arr);

}private void sort(int arr)

}if (!flag)else }}

private void print(int arr)}}

二、選擇排序

選擇排序則是按照某一規則選出乙個元素(這裡是選出最小元素),再按照某一規則交換(在陣列中找到更小的元素則交換陣列這兩個元素的位置),最終得到乙個有序的陣列。**如下:

/**

* 選擇排序,總共進行陣列長度-1趟,每一趟中假定第乙個元素最小,並記錄下標,挨個何陣列中的

* 其他元素比較,要是大於其他元素,替換最小值和下標。最後交換最小值和第乙個元素。

* 從下到大排序,由於每趟均能確定乙個最小數,故每趟的第乙個元素不一樣

*/public class selectsort ;

selectsort selectsort = new selectsort();

selectsort.sort(arr);

}private void sort(int arr)

}//出內迴圈,找到最小值,交換

if (i != index)

system.out.printf("第%d趟排序後結果:",i+1);

print(arr);

system.out.println();}}

private void print(int arr)}}

每趟氣泡排序後,確定的元素在陣列的後面存放,而每趟插入排序後,確定的元素在陣列的前面存放。

資料結構Vector之選擇排序 氣泡排序 歸併排序

在前面介紹完vector向量類的實現後,在此處簡要介紹三個排序演算法的實現,其中包括 以及圖示例。1 下面首先介紹選擇排序。選擇排序是選定首端或者末端作為遍歷開端,此處假定選定末端。在一次從後往前遍歷的過程中,在指標指向元素的前方,選出其中最大的乙個值,與指標指向的元素交換。每一次交換都保證最大值排...

資料結構 PHP 選擇排序 氣泡排序

選擇排序和氣泡排序時間複雜度都屬於o n 2 級別的排序演算法,由於它實現起來比較簡單,在不考慮效能的簡單情景下,可以優先考慮。選擇排序的原理就是每迴圈一次就挑出最小的那個 假設從小到大排 然後記住最小位置的那個索引,把它安排到最前面去,已經排過的位置就往後排,以此類推達到選擇排序的目的 從小到 擇...

C 資料結構(氣泡排序,選擇排序)

它重複地遍歷要拍學的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。遍歷數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。氣泡排序演算法的運作如下 第一種方法 defbubble sort alis...