冒泡排序

算法思想是每次从数组末端开始比较相邻俩元素,把第i小的冒泡到数组的第i个位置。i从0一直到N-1从而完成排序。当然也可以从数组开始端开始比较相邻两元素,把第i大的冒泡到第N-i个位置。I从0一直到N-1从而完成排序。

publicabstractclass Sorter<E extends Comparable<E>>  {

publicabstractvoid sort(E[] array,int from ,int len);

publicfinalvoid sort(E[] array)

{

sort(array,0,array.length);

}

protectedfinalvoid swap(E[] array,int from ,int to)

{

E tmp=array[from];

array[from]=array[to];

array[to]=tmp;

}

publicvoid sort(String helloString, int from, int len) {

// TODO Auto-generated method stub

}

}

publicclass BubbleSorter<E extends Comparable<E>> extends Sorter<E> {

privatestaticbooleanDOWN=false;

publicfinalvoid bubble_down(E[] array, int from, int len){

for(int i=from;i<from+len;i++){

for(int j=from+len-1;j>i;j--){

if(array[j].compareTo(array[j-1])<0){

swap(array,j-1,j);

}

}

}

}

publicfinalvoid bubble_up(E[] array, int from, int len){

for(int i=from+len-1;i>=from;i--){

for(int j=from;j<i;j++){

if(array[j].compareTo(array[j+1])<0){

swap(array,j,j+1);

}

}

}

}

@Override

publicvoid sort(E[] array, int from, int len) {

// TODO Auto-generated method stub

if(DOWN){

bubble_down(array,from,len);

}else{

bubble_up(array,from,len);

}

}

publicstaticvoid main(String[] args){

BubbleSorter s1 = new BubbleSorter<String>();

String[] myStringArray1 = {"2","5","1","9","4"};

for(int i=0;i<5;i++){

System.out.println(myStringArray1[i]);

}

s1.sort(myStringArray1, 0, 5);

for(int i=0;i<5;i++){

System.out.println(myStringArray1[i]);

}

}

}

Output:

冒泡排序 JAVA版的更多相关文章

  1. 冒泡排序Java版

    package dataStructureAlgorithmReview.day01; import java.util.Arrays; /** * 冒泡 * @author shundong * * ...

  2. 经典算法冒泡排序java版

    写个冒泡排序吧 冒泡排序(Bubble Sort)是一种典型的交换排序算法,通过交换数据元素的位置进行排序. public class BubbleSort{ public int[] bubbleS ...

  3. Java版冒泡排序和选择排序

    一.理解说明 1.理解和记忆 冒泡排序:依次定位数组元素,每次只和相邻的且符合条件的元素交换位置. 选择排序:依次在数组的每个位置,通过逐个对比选择出最大或最小的元素. 2.知识点说明 (1)数组是引 ...

  4. 常见排序算法总结(java版)

    一.冒泡排序 1.原理:相邻元素两两比较,大的往后放.第一次完毕,最大值在最大索引处. 即使用相邻的两个元素一次比价,依次将最大的数放到最后. 2.代码: public static void bub ...

  5. 内部排序比较(Java版)

    内部排序比较(Java版) 2017-06-21 目录 1 三种基本排序算法1.1 插入排序1.2 交换排序(冒泡)1.3 选择排序(简单)2 比较3 补充3.1 快速排序3.2 什么是桶排序3.3 ...

  6. 排序算法Java版,以及各自的复杂度,以及由堆排序产生的top K问题

    常用的排序算法包括: 冒泡排序:每次在无序队列里将相邻两个数依次进行比较,将小数调换到前面, 逐次比较,直至将最大的数移到最后.最将剩下的N-1个数继续比较,将次大数移至倒数第二.依此规律,直至比较结 ...

  7. 常见排序算法题(java版)

    常见排序算法题(java版) //插入排序:   package org.rut.util.algorithm.support;   import org.rut.util.algorithm.Sor ...

  8. 《算法导论》第二章demo代码实现(Java版)

    <算法导论>第二章demo代码实现(Java版) 前言 表示晚上心里有些不宁静,所以就写一篇博客,来缓缓.囧 拜读<算法导论>这样的神作,当然要做一些练习啦.除了练习题与思考题 ...

  9. ArcGIS Server 10 Java 版的Rest服务手动配置方法

    Java版的Manager中发布的服务默认只发布了该服务的SOAP接口,而REST接口需要用户在信息服务器,如Tomcat. Apache.WebLogic等中手工配置.由于在Java版的Server ...

随机推荐

  1. 用C语言怎么实现复制自己

    #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { char str[80]; ...

  2. 【Unity 3D】使用 2DToolkit 插件 制作2D精灵动画

    话说博客传图也太麻烦了吧,一个一个文件一个一个传....为什么不能直接粘贴了,自动上传呢... 刚直接粘贴了,结果一张图没有,又重新截一次图,在传了一次...真是太**了 好了,吐槽完了,开始博客吧 ...

  3. cocos2d-x环境的搭建之xcode-本人亲历成功搭建!

    cocos2d-x环境的搭建之xcode-本人亲历成功搭建! 写给大家的前言,在学习cocos2d-x的时候自己走了很多的弯路,也遇到了很多很多问题,不管是简单的还是困难的现在都慢慢的一步一步克服了, ...

  4. Linux经常使用命令(十二) - less

    less 工具也是对文件或其他输出进行分页显示的工具.应该说是linux正统查看文件内容的工具.功能极其强大. less 的使用方法比起 more 更加的有弹性.使用了 less 时.更easy用来查 ...

  5. PHP环境部署问题集合

    Forbidden You don't have permission to access /phpmyadmin/ on this server. 安装wamp 后访问 http://localho ...

  6. How to decompile class file in Java and Eclipse - Javap command example(转)

    Ability to decompile a Java class file is quite helpful for any Java developer who wants to look int ...

  7. 在Python中使用正则表达式同时匹配邮箱和电话并进行简单的分类

    在Python使用正则表达式需要使用re(regular exprssion)模块,使用正则表达式的难点就在于如何写好p=re.compile(r' 正则表达式')的内容. 下面是在Python中使用 ...

  8. perl 获取文件内容里第一个AAA和最后一个AAA

    <pre name="code" class="html">[root@wx03 ~]# cat -n aaa 1 3`13 2 edqae 3 d ...

  9. DButils工具类能够用来获取数据库连接向数据库插入更新删除对象2

    package com.ctl.util; import java.awt.Color; import java.awt.Font; import java.awt.Insets; import ja ...

  10. android launcher开发之图标背景以及默认配置

    1:然后我自己看了一下桌面图标的载入过程: 桌面第一次载入时是默认读取一个xml配置文件,完毕配置工作.这个配置文件在Launcher文件夹下, 路径是:\Launcher\res\xml\defau ...