`

数组排序

 
阅读更多
package com.nanjing.dataStruc;

import org.junit.Test;

public class Sort {
    private int[] data = {14, 19, 23, 65, 22, 76, 37, 85, 8, 93, 63, 86, 90, 38};

    @Test
    public void testChooseSort() {
        System.out.print("排序前:");
        printArray(data);
        bubbleSort();                   //冒泡排序
//        chooseSort();                   //选择排序
//        insertSort();                   //插入排序
        System.out.println();
        System.out.print("排序后:");
        printArray(data);
    }


    /**
     * 名称:冒泡排序<br/><br/>
     * 原理:与右边相比较,如果比右边的元素大,则交换位置  ,第一次循环后把最高的找出来了,在最右边就是最高的,
     *     如果比较的时候换成小于号,则结果是降序的<br/><br/>
     * 效率:N平方次比较,N平方次交换
     */
    public void bubbleSort() {
        for (int i = 0; i < data.length; i++) {
            for (int j = i + 1; j < data.length; j++) {
                if (data[i] > data[j]) {
                    swap(i, j);
                }
            }
        }
    }

    /**
     * 名称:选择排序<br/><br/>
     * 原理:从第一个开始,与它右边的所有元素相比较,如果比右边的元素大,则与第一个元素交换位置,且继续与后面元素比较,第一次循环后把最高的找出来了,
     *     在最左边就是最高的,如果比较的时候换成小于号,则结果是升序序的<br/><br/>
     * 效率:N平方次比较,N次交换
     */
    public void chooseSort() {
        for (int i = 0; i < data.length; i++) {
            int temp = data[i];
            for (int j = i + 1; j < data.length; j++) {
                if (temp > data[j]) {
                    temp = data[j];
                    swap(i, j);
                }
            }
        }
    }

    /**
     * 名称:插入排序<br/><br/>
     * 原理: 假设前面一已经排好序的,如果要插入一个新数字,将此数字与已排好序的全部对比一下,比他大的全部右移一位,然后将其插入
     * 效率:N平方次比较,N次交换
     */
    public void insertSort() {
        int in = 0;
        for (int i = 0; i < data.length; i++) {
            int temp = data[i];
            in = i;
            while (in > 0 && data[in - 1] >= temp) {
                data[in] = data[in - 1];
                --in;
            }
            data[in] = temp;
        }
    }

    public void swap(int i, int j) {
        int temp = data[i];
        data[i] = data[j];
        data[j] = temp;
    }

    public void printArray(int[] data) {
        for (int i = 0; i < data.length; i++) {
            System.out.print(data[i] + "\t");
        }
    }
}

 

分享到:
评论

相关推荐

    C#实现对二维数组排序的方法

    总结来说,本文介绍的C#实现二维数组排序的方法,通过将二维数组转换为`DataTable`并利用其内置的排序功能,提供了一种灵活且高效的解决方案。这种方法不仅适用于各种数据类型,而且保持了原始数组的引用,使得排序...

    易语言自定义数据类型数组排序

    本话题聚焦于“易语言自定义数据类型数组排序”,将深入探讨如何在易语言中创建、操作自定义数据类型数组,并实现各种排序算法,如根据产地、类别和售价等属性进行排序。 自定义数据类型在易语言中允许我们定义包含...

    LabVIEW二维数组排序.rar

    总结来说,LabVIEW中的二维数组排序涉及理解二维数组的结构,掌握各种排序方法,包括按行、按列及自定义排序,以及处理数据类型转换和性能优化。熟练掌握这些技能将使你在LabVIEW编程中游刃有余,处理各种数据处理...

    易语言数组排序源码.zip

    在"易语言数组排序源码.zip"这个压缩包中,我们可以期待找到一些关于易语言如何实现数组排序的示例代码。数组排序是计算机科学中的基础操作,它在各种算法和数据处理中都有着广泛的应用。 数组排序通常涉及两种主要...

    c语言的基本算法 数组排序

    本篇内容将深入探讨C语言中的数组排序算法。 首先,数组排序是算法设计中常见的问题,它涉及到数组元素的重新排列,以达到特定的顺序,例如升序或降序。这里提到了两种基本的排序算法:筛选法(用于求素数)和选择...

    Matlab数组排序详解docx文档下载

    在MATLAB中,数组排序是数据处理和分析过程中的常见操作。`sort`函数是MATLAB提供的一种方便的工具,可以对各种类型的数组进行升序或降序排序。以下是对`sort`函数的详细说明: 1. **基本用法**: `B = sort(A)` ...

    易语言数组排序算法集合

    本资源“易语言数组排序算法集合”提供了多种常见的排序算法的源代码实现,对于学习易语言以及算法理解都有极大的帮助。下面将详细介绍其中提及的几种排序算法。 1. **冒泡排序**: 冒泡排序是最基础的排序算法之...

    文本数组排序模块测试程序

    在IT行业中,数组排序是一个非常基础且重要的概念,特别是在编程领域。数组是数据结构的一种,它存储一组相同类型的元素,并且这些元素可以通过索引进行访问。排序则是将数组中的元素按照特定规则(如升序或降序)...

    VB多维数组排序源码

    VB多维数组排序源码

    VB二维数组排序源码

    VB二维数组排序源码

    matlab数组排序方法.docx

    在 MATLAB 中,数组排序是一个非常常见的操作,尤其在数据分析和科学计算中。MATLAB 提供了多种内置函数来满足不同的排序需求。以下是一些主要的排序方法及其详细说明: 1. **sort 函数**: - `sort(A)`:对一维...

    任意数组排序

    任意数组排序 很经典经典 学习交流

    VB070-数组排序 源代码

    在编程领域,数组排序是一个非常基础且重要的概念,尤其在Visual Basic (VB)中,它在数据处理和算法实现上扮演着关键角色。本资源"VB070-数组排序 源代码"提供了一组关于如何在VB环境中对数组进行排序的源代码示例,...

    .net属性数组排序.rar

    在.NET框架中,属性数组排序是一项常见的操作,特别是在ASP.NET开发中。这涉及到对对象集合进行排序,这些对象具有特定的属性,我们希望通过这些属性值来确定集合中的顺序。本篇将深入探讨如何使用.NET Framework...

    数组排序知识代码(c#)

    在本文中,我们将深入探讨C#编程语言中的数组排序知识,并通过实际的代码示例来阐述这一主题。C#是一种广泛应用于开发Windows桌面应用、Web应用和服务端软件的强大语言,而数组作为C#中的基本数据结构,是进行数据...

    一维数组排序标程

    一维数组排序标程,绝对AC,时间复杂度O(n logn),解压密码:JYQJYQFUCKYOU

    易语言源码易语言自定义数据类型数组排序.rar

    易语言源码易语言自定义数据类型数组排序.rar 易语言源码易语言自定义数据类型数组排序.rar 易语言源码易语言自定义数据类型数组排序.rar 易语言源码易语言自定义数据类型数组排序.rar 易语言源码易语言自定义...

    matlab数组排序matlab数组排序

    matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序...

    排序函数(数字或字符串数组排序)

    为普通数组和对象数组排序,对象数组排序时,可指定排序所依据的对象属性,汉字将以汉语拼音为序。

    8086汇编语言数组排序

    找了好多地方没有找到,自己写一个汇编语言实现的数组排序。

Global site tag (gtag.js) - Google Analytics