排序演算法除了要考慮時間,空間複雜度以外,還需要考慮到穩定性。
穩定的排序演算法表示在排序前後,相等的兩個值的前後位置保持不變。
選擇排序
首先從第乙個元素開始掃瞄整個序列,並將序列的最小元素和第乙個元素交換,然後從第二個元素開始掃瞄,將n-1個元素中的最小序列與第二個元素交換,執行到n-1個元素後,這個序列就排序好了。
/**
* 公升序
* 遍歷陣列找出最小的與第乙個交換,第二小的與第二個交換...
* @param originalarr
* @return
*/@override
public int asc(int originalarr)
}int tmp = originalarr[min];
originalarr[min] = originalarr[i];
originalarr[i] = tmp;
} return originalarr;
}
氣泡排序
比較相鄰的兩個元素,如果第乙個元素大於第二個元素就交換位置,第一遍最大值將會交換到最後乙個位置,第二次迴圈將n-1個元素中的最大值交換到最後第二個位置,重複操作n-1遍後,這個序列就排序好了。
/**
* 公升序
* 比較相鄰元素,將大元素沉下去
*/@override
public int asc(int originalarray)
}} return originalarray;
}
演算法 一些線性排序演算法
一 計數排序 使用這個演算法有乙個前提,待排序的陣列a,其所有的元素分布在區間 0,k 該演算法的時間複雜度為o n k 當k o n 時,執行時間為o n 所以當k比較小的時候適合採用這個演算法 下面給出這個演算法實現的 include using namespace std void count...
演算法筆記 008 選擇排序和氣泡排序 蠻力法
目錄 1 問題描述 2 解決方案 2.1 選擇排序原理簡介 2.2 具體編碼 選擇排序 2.3 氣泡排序原理簡介 2.4 具體編碼 氣泡排序 給定乙個可排序的n元素序列 例如,數字 字元和字串 將它們按照非降序方式重新排列。選擇排序開始的時候,我們從第乙個元素開始掃瞄整個列表,找到它的最小元素,然後...
演算法筆記 008 選擇排序和氣泡排序 蠻力法
目錄 1 問題描述 2 解決方案 2.1 選擇排序原理簡介 2.2 具體編碼 選擇排序 2.3 氣泡排序原理簡介 2.4 具體編碼 氣泡排序 給定乙個可排序的n元素序列 例如,數字 字元和字串 將它們按照非降序方式重新排列。選擇排序開始的時候,我們從第乙個元素開始掃瞄整個列表,找到它的最小元素,然後...