文档章节

数组的排序算法(冒泡排序,选择排序,插入排序)

有种下班别走
 有种下班别走
发布于 2015/06/16 10:38
字数 251
阅读 732
收藏 14
点赞 0
评论 0
package j2se;

/**
 * Created by jingqing.zhou on 2015/6/16.
 * 数组排序算法
 */
public class inserSort {

   /**
    *冒泡排序
    */
    public static int[] bubbleSort(){
        int[] arr = {10,5,7,45,11,-6,2};
        for(int i=0;i<arr.length-1;i++){
            for(int j=0; j<arr.length-i-1;j++){
                if(arr[j]<arr[j+1]){
                    int temp;
                    temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        return arr;
    }

    /**
     * 插入排序
     * @return
     */
    public static int[] insertSort(){
        int[] arr = {10,5,7,45,11,-6,2};
        for(int i=1;i<arr.length;i++){
            int j=i;
            while (j>0&&j<arr.length){
                int temp ;
                if(arr[j]<arr[j-1]){
                    temp = arr[j-1];
                    arr[j-1] = arr[j];
                    arr[j]=temp;
                }
                j--;
            }
        }
        return arr;
    }

    /**
     * 直接选择排序
     * @return
     */
    public static int[] selectSort(){
        int[] arr = {10,5,7,45,11,-6,2};
        for(int i=0;i<arr.length-1;i++){
            int min = i ;//先假定最小值就为第一个
            for(int j=min+1;j<arr.length;j++){
                if(arr[j]<arr[min]){
                    min = j;
                }
            }
            int temp;
            temp = arr[i];
            arr[i] = arr[min];
            arr[min] = temp;
        }

        return arr;
    }

    public static void main(String[] args) {
        int[] a =insertSort();
        for(int i=0;i<a.length;i++){
            System.out.print(a[i] + ", ");
        }
        System.out.println();
        int[] b =selectSort();
        for(int i=0;i<b.length;i++){
            System.out.print(b[i] + ", ");
        }
        System.out.println();
        int[] c =bubbleSort();
        for(int i=0;i<c.length;i++){
            System.out.print(c[i] + ", ");
        }
    }
}


© 著作权归作者所有

共有 人打赏支持
有种下班别走
粉丝 3
博文 65
码字总数 15218
作品 0
深圳
程序员
Java实现的几个常用排序算法详细解读

排序算法很多地方都会用到,近期又重新看了一遍算法,并自己简单地实现了一遍,特此记录下来,为以后复习留点材料。 废话不多说,下面逐一看看经典的排序算法: 1. 选择排序 选择排序的基本思...

xiahuawuyu
2012/10/06
0
0
一个Java小白通向数据结构算法之旅(7) - 简单排序总结

前言 昨天双,什么也没买。因为没有想到什么必需的用品,何况也没有钱。身为屌丝的我,只能敲敲代码,写一写总结,岂不美滋滋哉。今天看了《五亿探长雷洛》这部电影,非常喜欢刘德华饰演的雷...

cmazxiaoma
2017/11/12
0
0
Java数据结构与算法(第三章简单排序)

如何排序? 这一章中主要是三个比较简单的算法:冒泡排序、选择排序和插入排序。计算机程序不能像人一样通览所有的数据。它只能根据计算机的“比较”操作原理,在同一时间内对来个数据项进行...

小风89
2015/10/22
142
0
排序算法专项总结

1、选择排序,是每一次从未排序序列中找出一个最大或者最小的数,放到已排好序的数列最后。因此关键字比较次数跟数列的初始排列顺序是没有关系的。 2、初始数据集排列顺序与比较次数无关的有...

jinlong_xu
2017/09/10
0
0
1. C#数据结构与算法 -- 排序(插入,冒泡,希尔,快速,选择

1. 插入排序 ===================================================== 算法思想简单描述: 在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排 好顺序的,现在要把第n个数插到前面的有序...

半闲书屋半闲人
01/18
0
0
归并排序与快速排序的简明实现及对比

前言 归并排序与快速排序是两种有实际应用的排序算法,它们有一些共同的特点,整体思路上也比较相近。本文会从更简单的一些排序算法开始,过渡到归并排序和快速排序的实现,并对它们做一些简...

天方夜
07/04
0
0
数据结构与算法--排序之冒泡、选择、插入、希尔

数据结构与算法--排序之冒泡、选择、插入、希尔 我们关注的主要对象是重新排列数组元素的算法,每个元素都有一个主键,排序算法的目的是将所有元素按照某种方式排列,排列后索引大的元素的主...

sunhaiyu
2017/10/27
0
0
最常用的 8 个排序算法:从原理到改进,再到代码兑现透彻解析

作者:jack 1. 关于排序 很高兴与大家一起探讨计算机科学中的基础算法之排序算法。排序算法是非常基础同时又应用非常广泛的算法,无论在工作还是在生活中,比如: 数据库脚本,如MSSql, MySq...

小数点
2017/12/04
0
0
8个常用算法的超常剖析

本文来自作者 jack 在 GitChat 上分享「最常用的 8 个排序算法:从原理到改进,再到代码兑现透彻解析」,「阅读原文」查看交流实录 「文末高能」 「更多同类话题」 「查看全部话题」 编辑 | ...

gitchat
2017/11/30
0
0
[译] 排序算法入门 — Go 语言实现

[译] 排序算法入门 — Go 语言实现 Go语言学习园地博客2017-07-0915 阅读 go算法排序 排序算法是一种采用列表或数组并以特定顺序对其元素进行重新排序的算法。有几十种不同的排序算法,如果你...

Go语言学习园地博客
2017/07/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周一乱弹 —— 如果是你喜欢的女同学找你借钱

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @guanglun :分享Michael Learns To Rock的单曲《Fairy Tale》 《Fairy Tale》- Michael Learns To Rock 手机党少年们想听歌,请使劲儿戳(这...

小小编辑
39分钟前
9
3
NNS域名系统之域名竞拍

0x00 前言 其实在官方文档中已经对域名竞拍的过程有详细的描述,感兴趣的可以移步http://doc.neons.name/zh_CN/latest/nns_protocol.html#id30 此处查阅。 我这里主要对轻钱包开发中会用到的...

暖冰
今天
0
0
32.filter表案例 nat表应用 (iptables)

10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用 10.15 iptables filter表案例: ~1. 写一个具体的iptables小案例,需求是把80端口、22端口、21 端口放行。但是,22端口我...

王鑫linux
今天
0
0
shell中的函数&shell中的数组&告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析

影夜Linux
今天
0
0
Linux网络基础、Linux防火墙

Linux网络基础 ip addr 命令 :查看网口信息 ifconfig命令:查看网口信息,要比ip addr更明了一些 centos 7默认没安装ifconfig命令,可以使用yum install -y net-tools命令来安装。 ifconfig...

李超小牛子
今天
1
0
[机器学习]回归--Decision Tree Regression

CART决策树又称分类回归树,当数据集的因变量为连续性数值时,该树算法就是一个回归树,可以用叶节点观察的均值作为预测值;当数据集的因变量为离散型数值时,该树算法就是一个分类树,可以很...

wangxuwei
昨天
1
0
Redis做分布式无锁CAS的问题

因为Redis本身是单线程的,具备原子性,所以可以用来做分布式无锁的操作,但会有一点小问题。 public interface OrderService { public String getOrderNo();} public class OrderRe...

算法之名
昨天
11
0
143. Reorder List - LeetCode

Question 143. Reorder List Solution 题目大意:给一个链表,将这个列表分成前后两部分,后半部分反转,再将这两分链表的节点交替连接成一个新的链表 思路 :先将链表分成前后两部分,将后部...

yysue
昨天
1
0
数据结构与算法1

第一个代码,描述一个被称为BankAccount的类,该类模拟了银行中的账户操作。程序建立了一个开户金额,显示金额,存款,取款并显示余额。 主要的知识点联系为类的含义,构造函数,公有和私有。...

沉迷于编程的小菜菜
昨天
1
0
从为什么别的队伍总比你的快说起

在机场候检排队的时候,大多数情况下,别的队伍都要比自己所在的队伍快,并常常懊悔当初怎么没去那个队。 其实,最快的队伍只能有一个,而排队之前并不知道那个队快。所以,如果有六个队伍你...

我是菜鸟我骄傲
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部