`
seed
  • 浏览: 26127 次
  • 性别: Icon_minigender_1
  • 来自: 广东·佛山·南海
社区版块
存档分类
最新评论

常用算法

    博客分类:
  • Java
阅读更多
/**  
     * 选择排序 总比较次数:n*(n-1)/2 不稳定排序  
     *   
     * @param e  
     */  
    public void chooseSort(int[] e) {   
        int t;   
        for (int i = 0; i < e.length - 1; i++) {   
            for (int j = i + 1; j < e.length; j++) {   
                if (e[i] > e[j]) {   
                    t = e[i];   
                    e[i] = e[j];   
                    e[j] = t;   
                }   
            }   
        }   
    }   
  
    /**  
     * 直接插入排序 最少比较次数:n-1 ,最多比较次数:n*(n-1)/2 特点:原表顺序好排序效率高 稳定排序  
   *   
     * @param e  
     */  
    public void insertSort(int[] e) {   
        int j, t;   
        for (int i = 1; i < e.length; i++) {   
            for (t = e[i], j = i - 1; j >= 0 && t < e[j]; j--)// 依次后移   
            {   
                e[j + 1] = e[j];   
            }   
            e[j + 1] = t;// 插入   
        }   
    }   
  
    /**  
     * 冒泡排序 最多比较次数:n*(n-1)/2 稳定排序  
     *   
     * @param e  
     */  
    public void bubbleSort(int[] e) {   
        int t;   
        for (int i = 0; i < e.length - 1; i++) {   
            for (int j = 0; j < e.length - i - 1; j++) {   
                if (e[j] > e[j + 1]) {   
                    t = e[j];   
                    e[j] = e[j + 1];   
                    e[j + 1] = t;   
                }   
            }   
        }   
    }   
  
    /**  
     * 希尔排序 对直接插入排序的改进  
     *   
     * @param e  
     */  
    public void shellSort(int[] e) {   
        int j, y;   
        for (int h = e.length / 2; h > 0; h = h / 2) {   
            for (int i = h; i < e.length; i++) {   
                y = e[i];   
                for (j = i - h; j >= 0 && y < e[j]; j -= h) {   
                    e[j + h] = e[j];   
                }   
                e[j + h] = y;   
            }   
        }   
    }   
  
    /**  
     * 快速排序 对冒泡排序的改进  
     *   
     * @param e  
     * @param low  
     * @param high  
     */  
    public void quickSort(int[] e, int low, int high) {   
        if (low < high) {   
            int i = low, j = high, t = e[low];   
            while (i < j) {   
                // 在右子序列中找到比中间结点键值小或相等的结点,记录该结点下标于j   
                while (i < j && e[j] > t) {   
                    j--;   
                }   
                // 将该结点复制到左子序列   
                if (i < j) {   
                    e[i++] = e[j];   
                }   
                // 在左子序列中找到比中间结点键值大的结点,记录该结点下标于i   
                while (i < j && e[i] <= t) {   
                    i++;   
                }   
                // 将该结点复制到右子序列   
                if (i < j) {   
                    e[j--] = e[i];   
                }   
            }   
            e[i] = t;// 设置中间结点   
            quickSort(e, low, i - 1);// 划分左子序列   
            quickSort(e, i + 1, high);// 划分右子序列   
        }   
    }  

 

分享到:
评论

相关推荐

    数学建模30个常用算法(Python)

    数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法...

    模型算法大全(20+种常用算法模型+代码实现)

    模型算法大全(20+种常用算法模型+代码实现)模型算法大全(20+种常用算法模型+代码实现)模型算法大全(20+种常用算法模型+代码实现)模型算法大全(20+种常用算法模型+代码实现)模型算法大全(20+种常用算法模型+...

    常用算法程序集-徐士良-常用算法程序集-徐士良

    《常用算法程序集-徐士良》是一本深入探讨计算机科学中常见算法的书籍,作者徐士良在书中详尽地介绍了多种实用算法,并通过实际的程序代码来帮助读者理解和应用这些算法。这本书旨在提高读者的编程技能和解决实际...

    常用算法 常用算法 常用算法

    本篇文章将深入探讨"常用算法"这一主题,旨在帮助你理解并掌握这些算法的基本概念、应用场景及实现方法。 首先,让我们从排序算法开始。排序算法是计算机科学中最基础且广泛使用的算法之一,例如冒泡排序、插入排序...

    C常用算法程序集,各种经典算法

    本压缩包文件“C常用算法程序集”显然是一份包含了多种常见算法的代码集合,旨在帮助程序员理解和实践这些算法。 首先,我们来探讨一些基础的C语言算法。C语言中的基本算法包括排序算法、查找算法、递归算法、字符...

    常用算法程序集(CC++描述)

    《常用算法程序集C\C++描述》是一本深入浅出的计算机教材,旨在教授和实践常用的计算机算法。这本书以C和C++语言为载体,详细解释了多种算法的设计原理和实现方式,对于学习和理解算法有着极大的帮助。下面将分别就...

    常用算法程序集,第6版

    《常用算法程序集》第6版是一本涵盖了广泛算法实现的宝贵资源,旨在帮助程序员提升在实际编程中解决复杂问题的能力。这本书包含了多种经典和现代的算法,通过代码实例进行详细解析,使得读者能深入理解并掌握这些...

    嵌入式系统软件设计中的常用算法(完整版).zip_stormbdm_嵌入式_嵌入式算法_嵌入式系统软件设计中的常用算法_常用软件

    嵌入式系统软件设计中的常用算法(完整版)

    杨克昌 计算机常用算法与程序设计教程

    《杨克昌 计算机常用算法与程序设计教程》是一本深入浅出地介绍计算机算法和程序设计的优秀教材。作者杨克昌在书中详细阐述了计算机科学中常见的算法和程序设计技巧,旨在帮助读者理解和掌握这些核心概念,从而提升...

    常用算法程序集Fortran徐士良-第二版_Fortran_算法_

    在"常用算法程序集Fortran徐士良-第二版"中,我们可以期待找到一系列适用于各种计算任务的算法实现,这些算法是编程实践中非常重要的基础。 Fortran语言最初设计时是为了简化数值计算和科学计算的编写,因此它对...

    CH6_c常用算法程序集-徐士良著_

    《CH6_c常用算法程序集-徐士良著》是一本专注于C语言编程中的常见算法实现的书籍。这本书的第六章涵盖了多个核心算法,通过C语言编写,旨在帮助读者理解和应用这些算法。徐士良是一位知名的计算机科学教育者,他的...

    VB常用算法大全:VB常用算法大全

    VB常用算法大全涵盖了多种在编程实践中经常遇到的算法,这些算法在处理数据、优化代码效率、解决逻辑问题等方面起着关键作用。以下是VB常用的一些重要算法及其详细解释: 1. **排序算法**: - 冒泡排序:通过重复...

    常用算法程序集(C++)(徐士良 )

    《常用算法程序集(C++)》是由徐士良编写的C++算法代码集合,针对的是专业人士,旨在提供一个丰富的算法实现参考。这个资源对于学习和理解计算机科学中的基础及高级算法具有很高的价值。以下是对其中可能包含的一些...

    常用算法程序集源代码

    "常用算法程序集源代码"这个资源集合了一组常见的算法实现,主要以C/C++语言编写,为程序员提供了学习和实践算法的良好平台。C/C++作为底层编程语言,具有高效、灵活的特点,是实现算法的理想选择。 1. **排序算法*...

    电子计算机常用算法 电子计算机常用算法

    《电子计算机常用算法》这本书是算法学习的重要参考资料,它涵盖了计算机科学中许多核心的算法,旨在帮助读者理解和掌握这些算法的原理与应用。算法在计算机科学中扮演着基础且关键的角色,它们是解决问题和设计高效...

    C语言常用算法(很全,内有详细例子)

    常用算法一 一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。 例:计算 直到最后一项的绝对值小于1e-7时...

    VB常用算法大全 收录了众多常用算法

    《VB常用算法大全》是一本专注于Visual Basic编程语言中常用算法的资源集合,它涵盖了从基础到高级的各种算法实现,旨在帮助VB程序员提升算法理解和应用能力。在这个压缩包中,可能包含了详细的算法介绍、示例代码...

    Java常用算法手册(jb51.net)_Java常用算法手册_

    《Java常用算法手册》是一本面向Java初学者的算法指南,旨在通过深入浅出的方式,帮助读者理解并掌握各种常见的编程算法,从而提高他们的编程能力和解决问题的效率。这本书的覆盖范围广泛,涉及到算法基础、数据结构...

    常用算法程序集(C语言描述)(第三版)清华大学

    《常用算法程序集》(C语言描述)第三版是由清华大学出版社出版的一本经典算法书籍,其主要内容涵盖了广泛的算法实现,全部以C语言为编写工具。这本书不仅包含了经典的算法,也结合了作者的实践经验与现代数值计算的...

    Java常用算法手册

    资源名称:Java常用算法手册内容简介:现代的设计任务大多通过计算机编程来完成,而算法起到了至关重要的作用。可以毫不夸张地说,算法是一切程序设计的灵魂和基础。选择合理的算法,可以起到事半功倍的效果。 赵...

Global site tag (gtag.js) - Google Analytics