所謂的簡單排序方式就是時間複雜度相對於一些高階排序方式較高的排序方式(簡單排序的時間複雜度一般都是 o(n2)),但是其實現簡單,並且思路比較清晰,在本文當中,簡單介紹三種簡單排序方式,包括經典的氣泡排序、選擇排序、還有插入排序。
首先介紹插入排序,其實現思路是:預設當前待排序的位置的左邊是已經排序好的陣列,然後將當前位置與左邊排序好的陣列元素逐一比較,找到當前待排序的元素所應在的位置,該位置之後的所有元素右移一位,之後向下再便利,可能單看文字描述不宜理解,那麼看下圖應該就可以很直觀的理解該演算法的思路了:
//找到位置,直接賦值
input[in]=temp;}}
}之後介紹的是選擇排序,選擇排序的方式與插入排序有所不同,以公升序規則講解,在確認從左至右第乙個位置的時候,遍歷一次陣列,找出陣列當中最小的元素,然後放入第乙個位置,之後確認第二個位置,再次遍歷一次陣列(除了第乙個位置不需要遍歷,因為第乙個位置的數字一定是陣列當中最小的),再找到最小的元素,放入第二個位置,迴圈下去,如圖所示:
//內部方法,交換陣列當中的兩個位置內的元素值
private void swap(int a,intb)
//找到陣列當中i之後的最大值
private int findthemax(inti)
}returnresult;
}//找到陣列當中i之後的最小值
private int findthemin(inti)
}returnresult;
}//選擇排序
public voidsort()}}
最後介紹的是簡單排序當中的經典演算法,氣泡排序,其實現思路也是最簡單的,兩重迴圈,裡層迴圈確保每次遍歷完成後,能將最小值(或最大值)遍歷到陣列的最後乙個位置,外層迴圈控制遍歷的位置,思路如圖:
classbubblesort至此,三種簡單的排序方式的思路和實現方式都已經介紹完畢,之後還會介紹幾種高階排序方式,如快排,歸併排序等排序方式。//交換陣列當中的兩個位置的值
private void swap(int a,intb)
//雙重迴圈,注意下標的確定,讀者要思考清楚為什麼下標是這麼設定的
public voidsort()}}
}
資料結構 簡單排序
1 氣泡排序 package chap02 public class bubblesort 測試類 package chap02 public class testsort system.out.println 排序前 system.out.print for int i 0 i arr.lengt...
資料結構與演算法(1) 簡單排序
資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題 資料結構分為 邏輯結構 和 物理結構 兩類 邏輯結構分類 物理結構分類 邏輯結構在計算機中真正的表示方式 又稱為映像 稱為物理結構,也可以叫做儲存結構。常見的物理結構有順序儲存結構 鏈式儲存結構 時間複雜度 ...
資料結構與演算法 3 簡單排序
氣泡排序的api設計 class bubble 兩個數之間換位置 private static void exch comparable a,int i,int j 適用於輸入規模比較少的時候 選擇排序的api設計 public class testselection selection.sort ...