A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

由于发帖限制本贴将分为4个小帖子组成8大排序的介绍


1, 直接插入排序

   (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排

好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数

也是排好顺序的。如此反复循环,直到全部排好顺序。

(2)实例


(3)用java实现

[backcolor=rgb(27, 36, 38) !important][size=1em]1

[backcolor=rgb(27, 36, 38) !important][size=1em]2

[backcolor=rgb(27, 36, 38) !important][size=1em]3

[backcolor=rgb(27, 36, 38) !important][size=1em]4

[backcolor=rgb(27, 36, 38) !important][size=1em]5

[backcolor=rgb(27, 36, 38) !important][size=1em]6

[backcolor=rgb(27, 36, 38) !important][size=1em]7

[backcolor=rgb(27, 36, 38) !important][size=1em]8

[backcolor=rgb(27, 36, 38) !important][size=1em]9

[backcolor=rgb(27, 36, 38) !important][size=1em]10

[backcolor=rgb(27, 36, 38) !important][size=1em]11

[backcolor=rgb(27, 36, 38) !important][size=1em]12

[backcolor=rgb(27, 36, 38) !important][size=1em]13

[backcolor=rgb(27, 36, 38) !important][size=1em]14

[backcolor=rgb(27, 36, 38) !important][size=1em]15

[backcolor=rgb(27, 36, 38) !important][size=1em]16

[backcolor=rgb(27, 36, 38) !important][size=1em]17

[backcolor=rgb(27, 36, 38) !important][size=1em]18

[size=1em][backcolor=rgb(27, 36, 38) !important][size=1em]package com.njue;
[backcolor=rgb(27, 36, 38) !important][size=1em]  
[backcolor=rgb(27, 36, 38) !important][size=1em]public class insertSort {
[backcolor=rgb(27, 36, 38) !important][size=1em]public insertSort(){
[backcolor=rgb(27, 36, 38) !important][size=1em]    inta[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};
[backcolor=rgb(27, 36, 38) !important][size=1em]    int temp=0;
[backcolor=rgb(27, 36, 38) !important][size=1em]    for(int i=1;i<a.length;i++){
[backcolor=rgb(27, 36, 38) !important][size=1em]       int j=i-1;
[backcolor=rgb(27, 36, 38) !important][size=1em]       temp=a;
[backcolor=rgb(27, 36, 38) !important][size=1em]       for(;j>=0&&temp<a[j];j--){
[backcolor=rgb(27, 36, 38) !important][size=1em]       a[j+1]=a[j];                       //将大于temp的值整体后移一个单位
[backcolor=rgb(27, 36, 38) !important][size=1em]       }
[backcolor=rgb(27, 36, 38) !important][size=1em]       a[j+1]=temp;
[backcolor=rgb(27, 36, 38) !important][size=1em]    }
[backcolor=rgb(27, 36, 38) !important][size=1em]    for(int i=0;i<a.length;i++)
[backcolor=rgb(27, 36, 38) !important][size=1em]       System.out.println(a);
[backcolor=rgb(27, 36, 38) !important][size=1em]}
[backcolor=rgb(27, 36, 38) !important][size=1em]}

2,           希尔排序(最小增量排序)


(1)基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。

(2)实例:



(3)用java实现

[backcolor=rgb(27, 36, 38) !important][size=1em][backcolor=rgb(67, 90, 95) !important]
[size=1em]?

[size=1em]1

[size=1em]2

[size=1em]3

[size=1em]4

[size=1em]5

[size=1em]6

[size=1em]7

[size=1em]8

[size=1em]9

[size=1em]10

[size=1em]11

[size=1em]12

[size=1em]13

[size=1em]14

[size=1em]15

[size=1em]16

[size=1em]17

[size=1em]18

[size=1em]19

[size=1em]20

[size=1em]21

[size=1em]22

[size=1em]23

[size=1em]24

[size=1em]25

[size=1em][size=1em]public class shellSort {
[size=1em]public  shellSort(){
[size=1em]    int a[]={1,54,6,3,78,34,12,45,56,100};
[size=1em]    double d1=a.length;
[size=1em]    int temp=0;
[size=1em]    while(true){
[size=1em]        d1= Math.ceil(d1/2);
[size=1em]        int d=(int) d1;
[size=1em]        for(int x=0;x<d;x++){
[size=1em]            for(int i=x+d;i<a.length;i+=d){
[size=1em]                int j=i-d;
[size=1em]                temp=a;
[size=1em]                for(;j>=0&&temp<a[j];j-=d){
[size=1em]                a[j+d]=a[j];
[size=1em]                }
[size=1em]                a[j+d]=temp;
[size=1em]            }
[size=1em]        }
[size=1em]        if(d==1)
[size=1em]            break;
[size=1em]    }
[size=1em]    for(int i=0;i<a.length;i++)
[size=1em]        System.out.println(a);
[size=1em]}
[size=1em]}









13 个回复

倒序浏览
哇 这个帖子好流弊 啥都看不懂....得努力学呢

评分

参与人数 1黑马币 +12 收起 理由
乐滋滋儿 + 12

查看全部评分

回复 使用道具 举报
乱码啊。。。各种格式
回复 使用道具 举报
这是什么鬼哦
回复 使用道具 举报
6666666666666
回复 使用道具 举报
谢谢大神,已收藏
回复 使用道具 举报
顶一下!!!
回复 使用道具 举报
zllqxy 中级黑马 2015-9-25 22:48:13
8#
好多都不会
回复 使用道具 举报
大神的世界我不懂
回复 使用道具 举报
大神的世界真的不懂啊!!!
回复 使用道具 举报
签到签到   支持黑马 加油!
回复 使用道具 举报
哇,这么多排序方法啊,学习了!
回复 使用道具 举报
厉害,这个东西没去学过,长知识了
回复 使用道具 举报
很详细啊,非常感谢分享!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马