クイックソート in C++

  • おまけのサンプル (全体のコード)
  • 5個並べるのもしばらく待たなければならないほど遅い

[]typedef[]
[]any_range[][]<[][]int[][]&, [][]boost[][]::[][]forward_traversal_tag[][]>[]
[]range[][];[]

[]range[] []quick_sort[][]([][]range[] []rng[][])[]
[]{[]
[]if[][] (![][]rng[][])[]
[]return[] []rng[][];[]
[]else[][] {[]
[]int[][]& [][]x[][] = [][]front[][]([][]rng[][]);[]
[]range[] []xs[][] = [][]rng[][]|[][]dropped[][]([][]1[][]);[]

[]return[]
[]quick_sort[][]( [][]xs[][]|[][]filtered[][]([][]regular[][]([][]lambda[][]::[][]_1[][] < [][]x[][])) )[]
[] >> [][]single[][]([][]x[][])[]
[] >> [][]quick_sort[][]( [][]xs[][]|[][]filtered[][]([][]regular[][]([][]lambda[][]::[][]_1[][] >= [][]x[][])) );[]
[] ;[]
[] }[]
[]}[]