`
xiushan
  • 浏览: 31355 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Java数据结构之简单排序

阅读更多

一、冒泡排序

package pku.ss.datastructure.Sort;

public class BubbleSort {

    public static void main(String[] args) {

        int max = 1000000;

        ArrayBubble arr = new ArrayBubble(max);

        long startTime = System.currentTimeMillis();

        for (int j = 0; j  0; outer--)

            for (int j = 0; j  array[j + 1]) {

                    swap(j, j + 1);
                }
            }
    }


    private void swap(int x, int y) {
        double temp;
        temp = array[x];
        array[x] = array[y];
        array[y] = temp;
    }
}

 

 

二、选择排序
package pku.ss.datastructure.Sort;

public class SelectSort {
    public static void main(String[] args) {
        int max = 1000000;
        ArraySel arr = new ArraySel(max);

        long startTime = System.currentTimeMillis();
        for (int j = 0; j < max; j++) {
            double element = (double) (java.lang.Math.random() * (max - 1));
            arr.insert(element);
        }
        long endTime = System.currentTimeMillis();

        System.out.println("Sort time: " + (endTime - startTime) + " ms");
    }
}

/** ***************************************** */
class ArraySel {
    private double[] a;
    private int nElement;
    //--------------------------------------------------------
    public ArraySel(int max) {
        a = new double[max];
        nElement = 0;
    }
    //--------------------------------------------------------
    public void insert(double element) {
        a[nElement] = element;
        nElement++;
    }
    //--------------------------------------------------------
    public void display() {
        for (int i = 0; i < nElement; i++)
            System.out.print(a[i] + " ");
        System.out.println();
    }
    //--------------------------------------------------------
    public void selectSort() {
        int out, in, min;
        for (out = 0; out < nElement - 1; out++) {
            min = out;
            for (in = out + 1; in < nElement; in++) {
                if (a[in] < a[min]) {
                    min = in;
                }
            }
            if(min!=out)
                swap(min, out);
        }
    }
    //--------------------------------------------------------
    private void swap(int x, int y) {
        double temp;
        temp = a[x];
        a[x] = a[y];
        a[y] = temp;
    }
}


三、插入排序
package pku.ss.datastructure.Sort;

public class InsertionSort {
    public static void main(String[] args) {
        int max = 1000000;
        ArrayIns arr = new ArrayIns(max);

        long startTime = System.currentTimeMillis();
        for (int j = 0; j < max; j++) {
            double element = (double) (java.lang.Math.random() * (max - 1));
            arr.insert(element);
        }
        long endTime = System.currentTimeMillis();
        System.out.println("Sort time: " + (endTime - startTime) + " ms");
    }
}

class ArrayIns {
    private double[] a;
    private int nElement;

    // --------------------------------------------------------
    public ArrayIns(int max) {
        a = new double[max];
        nElement = 0;
    }

    // --------------------------------------------------------
    public void insert(double element) {
        a[nElement] = element;
        nElement++;
    }

    // --------------------------------------------------------
    public void display() {
        for (int i = 0; i < nElement; i++)
            System.out.print(a[i] + " ");
        System.out.println();
    }

    // --------------------------------------------------------
    public void insertionSort() {
        int out, in;
        for (out = 1; out < nElement; out++) {
            double temp = a[out];
            in = out;
            while (in > 0 && a[in - 1] >= temp) {
                a[in] = a[in - 1];
                in--;
            }
            a[in] = temp;
        }
    }

}

 

分享到:
评论

相关推荐

    java数据结构大作业,排序算法是性能比较

    在Java数据结构的学习中,排序算法的性能比较是一项重要的实践任务。这个大作业的主要目标是对多种排序算法,包括直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序和归并排序,进行性能分析。下面...

    Java数据结构和算法.pdf

    资源摘要信息是关于Java数据结构和算法的知识点总结,涵盖了数组、栈与队列、链表、递归、哈希表、高级排序、二叉树、红黑树、堆、带权图等数据结构和算法概念。 一、数组 * 数组是相同类型变量的集合,可以使用...

    数据结构java版 排序算法

    【数据结构与排序算法在Java中的应用】 在计算机科学中,数据结构是组织和存储数据的方式,而排序算法则是对这些数据进行排列的策略。在Java编程中,掌握各种排序算法对于提高程序效率至关重要。本篇文章将深入探讨...

    JAVA数据结构排序动态演示

    在这个"JAVA数据结构排序动态演示"项目中,开发者通过实现一系列经典的排序算法并配合动态界面展示,使学习者能直观地理解各种排序算法的工作原理。 首先,我们来详细解析每个排序算法: 1. **直接插入排序(直接...

    Java数据结构和算法中文第二版_Java数据结构_

    《Java数据结构和算法中文第二版》是一本深入探讨Java编程中数据结构和算法的书籍。数据结构是计算机科学的基础,它涉及到如何有效地组织和存储数据,以便在各种操作下高效地访问和修改。算法则是解决问题的具体步骤...

    《Java数据结构和算法》学习笔记(2)——4种简单排序算法

    在编程领域,掌握数据结构和算法是提升编程能力的关键步骤,尤其是在Java这样的高级语言中。本文将深入探讨四种简单的排序算法:插入排序、冒泡排序、选择排序。这些算法虽然在复杂度上不如高级排序算法如快速排序或...

    java数据结构与算法中文版

    《Java数据结构与算法中文版》是一本深入探讨编程核心领域的书籍,主要针对Java程序员,旨在提升他们在数据处理和问题解决能力上的技能。这本书详细介绍了数据结构和算法的基础理论及其在Java语言中的实现,是Java...

    Java数据结构课件

    在学习Java数据结构时,会涉及递归、排序算法(如冒泡排序、选择排序、快速排序、归并排序)、查找算法(如二分查找、哈希查找)等内容。同时,还会学习如何通过抽象数据类型(ADT)和接口来设计和实现自定义的数据...

    java数据结构与算法.pdf

    Java作为广泛应用的编程语言,其在实现数据结构和算法时有着丰富的库支持和优秀的可读性。下面将对标题和描述中提到的一些关键知识点进行详细解释。 1. **数据结构**: - **稀疏数组**:当大量数据中大部分为零或...

    java的数据结构简单演示系统

    Java 数据结构简单演示系统是一个基于Java编程语言开发的软件,旨在帮助用户直观...总之,这个Java数据结构简单演示系统是一个宝贵的学习工具,对于初学者和有经验的开发者来说,都是巩固和提升数据结构知识的好助手。

    java数据结构全套

    《Java数据结构全套》是针对Java编程语言深入学习数据结构的重要资源集合,涵盖了从基本概念到高级应用的全面知识体系。这个压缩包包含了四部分关键内容:叶核亚编著的《数据结构(Java版)(第3版)》电子教案、...

    清华邓俊辉Java数据结构

    《清华邓俊辉Java数据结构》是一门深入探讨数据结构及其在Java编程语言中实现的课程。这门课程由清华大学的邓俊辉教授主讲,旨在帮助学生掌握数据结构的基本概念,理解它们的工作原理,并能用Java语言进行实际操作。...

    数据结构之排序实验报告

    【数据结构之排序实验报告】 本实验主要涵盖了四种基本的排序算法:直接插入排序、折半插入排序、起泡排序和简单选择排序。这些排序算法是数据结构领域中基础且重要的概念,对于理解和优化算法效率至关重要。 1. *...

    Java数据结构和算法中文第二版

    根据提供的信息,“Java数据结构和算法中文第二版”这本书主要关注的是数据结构与算法的相关内容。下面将基于这些信息,详细介绍数据结构与算法的核心概念、重要性和应用领域,以及在Java编程环境中如何实现这些概念...

    java数据结构源码

    本资源"java数据结构源码"提供了一套完整的Java实现,涵盖了基础到高级的数据结构,包括数组、链表、二叉树、图以及各种排序算法。让我们逐一深入探讨这些知识点。 1. **数组**:数组是最基础的数据结构,它是一...

    数据结构(java版本)

    《数据结构(Java版本)》这本书正是为此目的而编写,旨在将理论与实际编程相结合,通过Java语言来实现各种经典的数据结构。 首先,书中的基础部分会介绍数据结构的基本概念,如数组、链表、栈和队列。数组是最基本...

    java数据结构实例

    "Java数据结构实例"这个主题,旨在通过具体的代码实例帮助初学者掌握数据结构的基本概念和使用方式,以此来提升编程思维和问题解决能力。在这个压缩包文件中,我们可以预期找到一些用Java实现的数据结构的源代码。 ...

    java描述版数据结构(简单易懂)

    Java 数据结构是编程中至关重要的概念,它涉及如何有效地存储和操作数据。在这个主题中,我们将探讨几个核心的数据结构以及相关的算法。 一、数组与简单排序 数组是基础的数据结构,它允许我们存储一系列相同类型的...

Global site tag (gtag.js) - Google Analytics