`

算法与数据结构之简单排序

阅读更多

简单排序:

1.冒泡排序

2.选择排序

3.插入排序

代码:SimpleSort.java

 

package com.caicongyang.sort;

/**
 * 
 * 
 * @author caicongyang1
 * @version $Id: SimpleSort.java, v 0.1 2016年5月31日 下午4:15:07 caicongyang1 Exp $
 */
public class SimpleSort {
    public static void main(String[] args) {
        int[] arr = { 10, 4, 5, 7, 2, 3, 8 };
        System.out.println(arr[arr.length - 1]);
        //bubbleSort(arr);
        //selectionSort(arr);
        insertionSort(arr);
        for (int i : arr) {
            System.out.println(i);
        }

    }

    /**
     *插入排序
     *将数组分成有序部分和无序部分,将无序的依次插入有序部分中
     * 
     * @param arr
     */
    public static void insertionSort(int[] arr) {
        for (int i = 1; i < arr.length; i++) {//外层总1开始,
            int temp = arr[i];
            int j = i;
            while (j > 0 && arr[j - 1] >= temp) {//内层从外层开始,向左移动,直到他不能向左移动位置(排到到应有的位置)
                arr[j] = arr[j - 1]; //向左移动 
                --j;

            }
            arr[j] = temp; //插入对应的位置
        }
    }

    /**
     * 选择排序
     * 
     * 将最小的放在未排序的最前面,依次交换
     * 
     * 
     */
    public static void selectionSort(int[] arr) {
        int min; //定义最小的变量
        for (int i = 0; i < arr.length - 1; i++) { //外层从数组最小的位置0开始,到数组的倒数第二个位置
            min = i; //默认最小为数组第一个
            for (int j = i + 1; j < arr.length; j++) { //内层从i+1开始,到数组的最后一个位置,依次比较,如果当前数比min更小,则将内层的数换到min位置
                if (arr[j] < arr[min]) {
                    min = j;
                }
                int temp = arr[i];
                arr[i] = arr[min];
                arr[min] = temp;
            }

        }
    }

    /**
     * 冒泡排序
     * 
     * 逐个交换,将最大的放到最后一个,依次类推
     *
     */
    public static void bubbleSort(int[] arr) {
        for (int i = arr.length - 1; i > 1; i--) { //外层从数组的最后一个位置开始,依次递减,后面的位置是排序好的
            for (int j = 0; j < i; j++) {//内层从0开始,逐个比较,直到内层等于外层的时候结束,将最大的一个换到最后的位置
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j]; //交换对换位置
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }
}

 

更多精彩内容请继续关注我的博客http://blog.csdn.net/caicongyang

记录与分享,你我共成长 -fromcaicongyang

 

如果你觉得本文对你有帮助,可以扫描下面的微信二维码,请我喝杯水咯!

 

分享到:
评论

相关推荐

    算法与数据结构习题答案+课件+参考资料 国防工业出版社 张永 李睿

     本书分为基本概念、简单数据结构(线性表、栈、队列)、复杂数据结构(树、图)和算法与数据结构应用(排序、查找、算法设计基础)四部分,详细介绍了常用数据结构和算法的基本概念及其不同的实现方法,对各种数据...

    数据结构学习笔记排序算法:基数排序

    数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数...

    算法与数据结构课程设计——排序

    《算法与数据结构课程设计——排序》 在计算机科学中,排序是处理数据的重要操作,尤其是在数据分析、数据库管理和算法效率优化等领域。本课程设计主要涵盖了五种常见的排序算法:冒泡排序、直接插入排序、简单选择...

    算法与数据结构_张乃孝

    《算法与数据结构_张乃孝》是一本深入探讨计算机科学基础领域的经典教材,由知名专家张乃孝编著。本书旨在帮助初学者理解和掌握算法与数据结构的核心概念,为编程和软件开发打下坚实的基础。 算法是解决问题或执行...

    数据结构实验-排序算法

    排序算法则是数据结构中的重要部分,它们用于对一组数据进行有序排列。在这个实验中,我们将关注六种不同的排序算法:选择排序、冒泡排序、插入排序、基数排序以及快速排序和归并排序。下面是对这些排序算法的详细...

    数据结构与算法之排序

    本文将深入探讨“数据结构与算法之排序”,重点关注内部排序和外部排序。 首先,我们理解一下数据结构。数据结构是组织和存储数据的方式,它决定了数据的访问效率和操作复杂度。常见的数据结构有数组、链表、栈、...

    c语言 数据结构 快速排序算法

    c语言版本的数据结构的快速排序算法,适用于新手学习

    数据结构8中算法排序,配源码和动画演示.rar

    数据结构是计算机科学中的核心部分,它探讨了如何有效地存储和组织数据,以便进行高效的查询、更新和操作。在这个压缩包文件中,我们...通过学习和实践这些排序算法,你将能够更好地掌握数据结构和算法,提升编程能力。

    算法与数据结构(c++版)电子版

    本书是高等教育“十一五”国家级规划教材,系统介绍各种数据结构、常用算法及算法分析技术。数据结构的内容包括线性结构、树形结构、哈希结构、索引结构;算法方面的内容包括选择算法、查找算法、排序算法。本书还...

    数据结构中查找和排序算法实验报告

    根据提供的实验报告信息,我们可以详细地探讨数据结构中查找与排序算法的相关知识点,具体包括折半查找、顺序查找、归并排序以及堆排序这四种算法。 ### 一、折半查找 #### 定义与原理 折半查找,也称二分查找,是...

    算法ppt 数据结构、排序等

    数据结构与排序是计算机科学中的核心概念,它们在编程和算法设计中扮演着至关重要的角色。数据结构是指在计算机中组织和存储数据的方式,而排序则是对这些数据进行有效处理的关键技术。 首先,我们来深入了解一下...

    算法与数据结构的排序算法

    6. 堆排序:利用堆这种数据结构实现的排序,可以原地排序,不需要额外的存储空间。 7. 计数排序、桶排序和基数排序:这些是线性时间复杂度的非比较排序算法,适用于特定类型的数据,如整数排序。 三、排序算法的...

    算法与数据结构考研试题精析(第二版)第10章 排序.doc

    "算法与数据结构考研试题精析(第二版)第10章 排序" 本资源是关于算法与数据结构考研试题精析的第10章,主要讨论排序算法。该资源包括选择题和多选题,涵盖了排序算法的稳定性、时间复杂度、比较次数等方面的知识点...

    算法与数据结构考试题库

    此外,这些题目还可能涉及排序(如冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序)和查找(如顺序查找、二分查找、哈希查找)算法,这些都是数据结构课程的重点。 接着,"数据结构试卷参考答案.doc"是...

    算法与数据结构课后与习题解析

    习题涵盖排序算法(如冒泡排序、选择排序、快速排序、归并排序)、查找算法(如二分查找、哈希查找)以及复杂的数据结构操作。每道习题都配有详细的解题步骤和分析,有助于读者巩固知识,提高问题解决能力。 五、...

    数据结构课程设计五——排序算法综合分析.doc

    数据结构课程设计五——排序算法综合分析 该资源是一个数据结构课程设计的五个部分,主要讲解排序算法的综合分析。该资源涵盖了多种排序算法,包括直接插入排序、希尔排序、快速排序、冒泡排序、堆排序和归并法排序...

    数据结构排序算法

    数据结构排序算法

    数据结构冒泡排序算法

    数据结构冒泡排序算法 数据结构冒泡排序算法

    内部排序算法比较 数据结构课程设计

    1、本演示程序对以下6种常用的内部排序算法进行实测比较:起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序。 2、待排序表的表的元素的关键字为整数,表长不小于100;其中的数据要用伪随机数产生...

Global site tag (gtag.js) - Google Analytics