Scala 插入排序

2022-01-26 06:16:08 字數 634 閱讀 4103

利用list的方法,**極簡,無需記憶下標移動。

①方法insert將元素x插入到xs,使左邊的元素都比x小。

②insert(xs.head, isort(xs.tail)),可以理解為將待排序的list的第乙個元素插入到其中①中所說的位置,引數isort(xs.tail)表示此待插入的集合已經有序。

object test16 

def insertsort(xs: list[int]): list[int] = if (xs.isempty) nil else insert(xs.head, insertsort(xs.tail))

def insert(x: int, xs: list[int]): list[int] = if (xs.isempty || x < xs.head) x :: xs else xs.head :: insert(x, xs.tail)

}

模式匹配版

object test16 

def insertsort(xs: list[int]): list[int] = xs match

def insert(x: int, xs: list[int]): list[int] = xs match

}

scala 排序演算法 直接插入排序

package com.xing.hai created by xx on 2 22 2017.直接插入排序 核心邏輯 在要排序的一組數中,假設前面 n 1 n 2 個數已經是排好順序的,現在要把第n 個數插到前面的有序數中,使得這 n個數也是排好順序的。如此反覆迴圈,直到全部排好順序。val so...

插入排序 折半插入排序

折半插入排序 binary insertion sort 直接插入排序採用順序查詢法查詢當前記錄在已排好序的序列中插入位置,這個 查詢 操作可利用 折半查詢 來實 現,由此進行的插入排序稱之為折半插入排序 binary insertion sort 演算法思想 1 將待排序的記錄存放在陣列r 1.n...

插入排序 折半插入排序

折半插入排序是基於直接插入排序的優化。直接插入排序 將第i個元素插入時,通過折半查詢的方式,來查詢第i個元素合適的位置。當0 i 1 位置上的元素都已經排序ok,現需要插入第i個元素,設其值為temp 令low 0,high i,mid high low 2。那麼temp可能插入的位置是 low h...