八大排序算法插入排序
算法思想
假定前n-1个数已经排好序,将第n个数插入到有序数列中的时候,使得这n个数也是排好序的。循环往复,直到全部排好序。 算法实现PHP实现 0; $j --) { if($arr[$j] < $arr[$j - 1]) { $tmp = $arr[$j - 1]; $arr[$j - 1] = $arr[$j]; $arr[$j] = $tmp; } else { break; } } } return $arr; } $arr = [13,1, 7,11, 5, 3, 9]; $res = insert($arr); print_r($res);Java实现 public static int[] insert(int[] arr) { int tmp; for (int i = 0; i < arr.length - 1; i ++) { for (int j = i + 1; j > 0; j --) { if(arr[j] < arr[j - 1]) { tmp = arr[j - 1]; arr[j - 1] = arr[j]; arr[j] = tmp; } else { break; } } } return arr; } public static void main(String[] args) { int [] arr = {13,1, 7,11, 5, 3, 9}; insert(arr); System.out.println(Arrays.toString(arr)); }Python实现 def insert(lists): n = len(lists) for i in range(n - 1): j = i + 1 while j > 0: if arr[j] < arr[j - 1]: arr[j], arr[j - 1] = arr[j - 1], arr[j] else: break j = j - 1 return lists if __name__ == "__main__": arr = [13, 1, 7, 11, 5, 3, 9] insert(arr) for i in range(len(arr)): print("%d" % arr[i])Go实现 func insert(arr []int) []int { for i := 0; i < len(arr) - 1; i ++ { for j := i + 1; j > 0; j -- { if arr[j] < arr[j - 1] { arr[j], arr[j - 1] = arr[j - 1], arr[j] } else { break } } } return arr } func main() { arr := []int{13,1, 7,11, 5, 3, 9} res := insert(arr) fmt.Println(res) }