`
gaodansoft
  • 浏览: 18736 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

用F#实现快速排序

    博客分类:
  • F#
F# 
阅读更多
//快速排序

open System

let rec QuickSort(xs:List<int>) =
    match xs with
    |[]   -> []
    |[a] -> [a]
    |(x::xs) ->
        let smaller= QuickSort(xs |>List.filter(fun e->e<=x))
        let larger = QuickSort(xs |>List.filter(fun e->e>=x))
        smaller @ [x]@ larger

               
let data =[3;2;1;5]
let r= QuickSort data
0
0
分享到:
评论

相关推荐

    F#语言基础

    - **排序操作**:F#提供了内置的排序函数,可以直接应用于列表,而无需显式实现比较逻辑。 - **下载网页**:F#内置的支持网络操作的库使得下载网页变得非常简单,相比于C#,代码更为简洁。 #### 四、F#的关键概念 ...

    python实现快速排序的几种方法.docx

    通过这两种方法,我们可以灵活地使用Python实现快速排序算法,并根据实际需求选择不同的实现方式。第一种方法更传统,适合初学者理解快速排序的基本流程;第二种方法则更加简洁高效,适用于对性能有一定要求的应用...

    二分搜索_快速排序_背包问题

    编写一个程序,使用快速排序算法对一个数组进行排序。 #### C++ 实现 ```cpp #include #include using namespace std; template int Partition(T a[], int p, int r) { int i = p, j = r + 1; T x = a[p]; ...

    comp-fs:F#の竞プロ,AtCoder关系物置き

    了解如何用 F# 实现常见的数据结构如堆、队列、栈和图,并应用它们来解决排序、查找、图论和其他算法问题。 3. **AtCoder 题目解析**:资源可能包含了对 AtCoder 上特定问题的解决方案,通过这些实例可以学习如何...

    网络编程实践报告

    - 使用快速排序算法对数组进行排序,该算法的核心思想是选择一个基准值,将所有小于基准值的元素放到基准值左边,大于基准值的元素放到右边。 - 排序完成后输出排序结果。 **代码示例**(伪代码): ```cpp void ...

    数据结构和算法必知必会的50个代码实现

    * 实现归并排序、快速排序、插入排序、冒泡排序、选择排序* 编程实现O(n)时间复杂度内找到一组数据的第K大元素 ## 二分查找 * 实现一个有序数组的二分查找算法* 实现模糊二分查找算法(比如大于等于给定值的第一个...

    sortAlgorithm

    根据提供的文件信息,我们...综上所述,这段代码不仅展示了快速排序和插入排序的具体实现,还展示了这两种排序算法如何有效地结合起来使用,以优化排序的整体性能。这对于理解排序算法的实际应用具有重要的参考价值。

    希尔+快速.txt希尔+快速.txt希尔+快速.txt

    在给定的代码中,快速排序的主要实现逻辑位于`quickSort`函数中: ```c void quickSort(int* arr, int startPos, int endPos, int t) { int i, j; int ch; ch = arr[startPos]; i = startPos; j = endPos; if...

    数据结构和算法问题及实现

    * 实现归并排序、快速排序、插入排序、冒泡排序、选择排序 * 编程实现O(n)时间复杂度内找到一组数据的第K大元素 ## 二分查找 * 实现一个有序数组的二分查找算法 * 实现模糊二分查找算法(比如大于等于给定值的第一...

    数据结构和算法必知必会的50个代码实现源码.zip

    栈* 用数组实现一个顺序栈* 用链表实现一个链式栈* 编程模拟实现一个浏览器的前进、后退功能## 队列* 用数组实现一个顺序队列* 用链表实现一个链式队列* 实现一个循环队列## 递归* 编程实现斐波那契数列求值f(n)=f(n...

    外排序(磁盘排序)之多路归并排序的简单实现

    对于内存足够存放所有待排序元素的情况,我们通常采用诸如快速排序、堆排序等内部排序方法。然而,在面对海量数据时,这些数据往往无法一次性全部加载到内存中进行处理,这就引出了“外排序”这一概念。本文将详细...

    重载函数实现变量排序问题

    2. **排序算法**:虽然这里使用的排序算法相对简单,但在实际应用中可能需要考虑更高效的排序方法,如快速排序等。 3. **扩展性**:通过这种方式,可以很容易地添加更多数据类型的排序函数,如对四个整数或五个字符...

    k-d-tree-fs:F#中的kd树实现

    在**F#中的kd树实现**,开发者通常会利用F#的元组、记录类型和模式匹配等特性来构造kd树的节点结构。kd树的基本思想是在构建过程中交替地沿着每个维度进行分割,每次选择当前维度上的中位数作为分割点。这个过程可以...

    C#,VB.NET和F#中的加权快速联合查找

    在C#、VB.NET和F#中实现这个算法,可以方便地应用到各种网络连接、图的连通性判断等场景。 加权快速联合查找的核心思想是通过两个主要操作来管理集合:`Find`和`Union`。`Find`操作用于确定一个元素所属的集合,`...

    Python使用lambda表达式对字典排序操作示例

    ### Python使用Lambda...为了更好地理解和实践这些概念,推荐尝试使用在线排序工具进行练习,例如文章中提到的“在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具”,这将有助于加深理解并提高编程技能。

    算法导论答案 经典

    - **7.4-3**:理解快速排序算法在实际应用场景中的表现。 - **7.4-4**:研究快速排序算法的改进方法。 - **7.4-5**:探讨快速排序算法的优化策略。 - **7.4-6**:理解快速排序算法与其他排序算法的比较。 ### 第8章...

    python常见排序算法基础教程.docx

    **定义**:快速排序是一种非常高效的排序算法,其基本思想是通过一趟排序将待排记录分隔成独立的两部分,其中一部分的所有记录都比另一部分的所有记录都要小,然后再按此方法对这两部分记录分别进行快速排序。...

    数据结构考研讲义.docx

    快速排序是一种高效的排序算法,使用分治策略,通过一趟排序将待排序记录分割成独立的两部分。 ##### 6.6 堆排序 堆排序利用堆这种数据结构所设计的一种排序算法,分为创建初始堆和反复调整堆两个步骤。 ##### 6.7...

Global site tag (gtag.js) - Google Analytics