博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java数据结构与算法(二) 简单排序
阅读量:6202 次
发布时间:2019-06-21

本文共 1749 字,大约阅读时间需要 5 分钟。

#####1.冒泡排序

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端。 #####2.选择排序 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。

  • 每一轮遍历,都去寻找一个最小值,然后把当前的位置与最小值交换。 这样下来得到的是一组 从小到大的排序。 #####3.插入排序

插入排序基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。

  • 先拿出第二个数(然后依次往后拿),如果发现前面有比它小的数字,该元素后移。 可以看下动态图先做了解 也特别感谢这位作者 ###1.冒泡排序 略,很常见的排序
package com.fantj.dataStruct.simplesort;/** * 冒泡排序 * Created by Fant.J. * 2017/12/20 19:43 */public class BubbleSort {    //小值往前排    public static void sort(long [] arr){        long tmp = 0;        for (int i = 0;i < arr.length;i++){            for (int j = arr.length-1;j>i;j--){                if (arr[j]

###2.选择排序 每一轮遍历,都去寻找一个最小值,然后把当前的位置与最小值交换。 这样下来得到的是一组 从小到大的排序。

package com.fantj.dataStruct.simplesort;/** * 选择排序 * Created by Fant.J. * 2017/12/20 19:56 */public class SelectionSort {    public static void sort(long []arr){        int k = 0;        long temp = 0;        for (int i = 0;i

###3.插入排序 拿出第二个数,如果发现前面有比它小的数字,交换它们。

package com.fantj.dataStruct.simplesort;/** * Created by Fant.J. * 2017/12/20 20:56 */public class InsertSort {    public static void sort(long [] arr){        int i, j;        long target;        //假定第一个元素被放到了正确的位置上        //这样,仅需遍历1 - n-1        for (i = 1; i < arr.length; i++)        {            j = i;            target = arr[i];            //如果当前值小于前面的值,就交换它们            while (j > 0 && target < arr[j - 1])            {                arr[j] = arr[j - 1];                j--;            }            arr[j] = target;        }    }}复制代码

转载地址:http://duaca.baihongyu.com/

你可能感兴趣的文章
Vue全家桶+Mint-Ui打造高仿QQMusic,搭配详细说明
查看>>
[LeetCode] Lowest Common Ancestor of a Binary Tree系列
查看>>
【114天】尚学堂高琪JAVA300篇视频笔记(31-37)[舍弃]
查看>>
git:cherry-pick、revert、reset介绍
查看>>
计算几何笔记之凸包
查看>>
SQL系列之基本操作
查看>>
速率限制思路
查看>>
Angular开发者指南(二)概念概述
查看>>
Native进程之Trace原理
查看>>
V8 Object 内存结构与属性访问详解
查看>>
EF Core 2.1路线图:视图、GROUP BY和惰性加载
查看>>
MySQL 8支持文档存储,并带来性能和安全方面的改进
查看>>
Visual Studio 15改进C++工程加载
查看>>
春晚红包:挺住的百度和崩坏的应用商店
查看>>
微软超过苹果 成为全球第一大市值公司
查看>>
一文看懂.NET的各种变体
查看>>
Oracle收购Talari,第一家SD-WAN公有云提供商出现
查看>>
Ruby 2.5.0概览
查看>>
Eclipse发布MicroProfile 1.4和2.0
查看>>
实验进行中:.NET WebAssembly支持
查看>>