氣泡排序的基本思想是:通過對待排序序列從前向後(從下標較小的元素開始),依次比較 相鄰元素的值,若發現逆序則交換,使值較大的元素逐漸從前移向後部,就象水底下的氣泡一樣逐漸向上冒。
//氣泡排序演算法
public
static
int[
]maopaosort
(int
initial)}}
return initial;
}
選擇排序基本思想:第一次從 arr[0]~arr[n-1]中選取最小值, 與 arr[0]交換,第二次從 arr[1]~arr[n-1]中選取最小值,與 arr[1]交換,第三次從 arr[2]~arr[n-1]中選取最小值,與 arr[2] 交換,…,第 i 次從 arr[i-1]~arr[n-1]中選取最小值,與 arr[i-1]交換,…, 第 n-1 次從 arr[n-2]~arr[n-1]中選取最小值, 與 arr[n-2]交換,總共通過 n-1 次,得到乙個按排序碼從小到大排列的有序序列。
/**
* 選擇排序演算法
* 遍歷陣列的所有數,將最小的放到最左邊,以此類推
* @param initial 傳入要排序的陣列
* @return 已經排序完的陣列
*/public
static
int[
]choicesort
(int
initial)
}//遍歷完一次之後,就把這個最小值,和已經排序了的數的下乙個數,兩個數做交換
//假如已經排序好了前面兩個數,就把最小值的數,和第三個數做交換
temp = initial[j]
; initial[j]
= initial[minindex]
; initial[j]
= temp;
}return initial;
}
後續更新插入排序、希爾排序、快速排序、歸併排序、基數排序、交換排序、堆排序,敬請期待~ 排序演算法 冒泡和選擇
最近複習一下排序演算法,從簡單的開始,陸續寫上來 一 氣泡排序 氣泡排序總的平均時間複雜度為 import random def bubblesort arr for i in range 0,len arr for j in range i 1,len arr if arr i arr j tem...
排序演算法之氣泡排序和選擇排序
個人感覺氣泡排序和選擇排序相似,都是通過兩個for迴圈,兩兩比較實現排序過程。但比較的不同之處在於,若有n個數,氣泡排序進行n 1趟比較,第一趟進行n 1次比較,第i趟進行n i次比較,並且是連續相鄰的兩個數比較,第乙個和第二個數比,再第二個和第三個數比 而選擇排序是將n個數中第乙個數與剩下所有數比...
排序演算法之氣泡排序和選擇排序
通過for迴圈,實現排序 每次迴圈,找到乙個當前的最大值 多次迴圈,完成排序 原理 相鄰的兩個單位,比較儲存的資料 如果第乙個單元的資料較大,就將兩個相鄰單元,交換儲存資料 過程 從起始單元開始比較,第一次迴圈,會選擇出乙個最大值,放在陣列所有單元的最後 之後,每次迴圈,都會比較出乙個本次迴圈的最大...