当前位置:  编程技术>java/j2ee

冒泡排序算法原理及JAVA实现代码

    来源: 互联网  发布时间:2014-11-01

    本文导语:  冒泡排序法:关键字较小的记录好比气泡逐趟上浮,关键字较大的记录好比石块下沉,每趟有一块最大的石块沉底。 算法本质:(最大值是关键点,肯定放到最后了,如此循环)每次都从第一位向后滚动比较,使最大值沉底,...

冒泡排序法:关键字较小的记录好比气泡逐趟上浮,关键字较大的记录好比石块下沉,每趟有一块最大的石块沉底。

算法本质:(最大值是关键点,肯定放到最后了,如此循环)每次都从第一位向后滚动比较,使最大值沉底,最小值上升一次,最后一位向前推进(即最后一位刚确定的最大值不再参加比较,比较次数减1)

复杂度: 时间复杂度 O(n2) ,空间复杂度O(1)

JAVA源代码(成功运行,需要Date类)

代码如下:

 public static void bubbleSort(Date[] days) {
  int len = days.length;
  Date temp;
  for (int i = len - 1; i >= 1; i--) {
   for (int j = 0; j < i; j++) {
    if (days[j].compare(days[j + 1]) > 0) {
     temp = days[j + 1];
     days[j + 1] = days[j];
     days[j] = temp;
    }
   }
  }
 }
class Date {
 int year, month, day;

 Date(int y, int m, int d) {
  year = y;
  month = m;
  day = d;
 }

 public int compare(Date date) {
  return year > date.year ? 1 : year < date.year ? -1
    : month > date.month ? 1 : month < date.month ? -1
      : day > date.day ? 1 : day < date.day ? -1 : 0;
 }

 public void print() {
  System.out.println(year + " " + month + " " + day);
 }
}

代码如下:

package testSortAlgorithm;

public class BubbleSort {
 public static void main(String[] args) {
  int array[] = { 5, 6, 8, 4, 2, 4, 9, 0 };
  bubbleSort(array);
  for (int i = 0; i < array.length; i++) {
   System.out.println(array[i]);
  }
 }

 public static void bubbleSort(int array[]) {
  int temp;
  for (int i = array.length - 1; i > 0; i--) {
   for (int j = 0; j < i; j++) {
    if (array[j] > array[j + 1]) {
     temp = array[j];
     array[j] = array[j + 1];
     array[j + 1] = temp;
    }
   }
  }
 }
}


    
 
 

您可能感兴趣的文章:

  • <<大话数据结构>>中冒泡排序算法改进
  • php冒泡排序算法实现代码
  • python冒泡排序算法的实现代码
  • java冒泡排序算法代码
  • c#冒泡排序算法示例
  • 又一个PHP实现的冒泡排序算法分享
  • C++冒泡排序算法实例
  • C++ 冒泡排序数据结构、算法及改进算法
  • php排序算法 PHP版快速排序与冒泡排序
  • 排序算法之PHP版快速排序、冒泡排序
  • c# 冒泡排序算法(Bubble Sort) 附实例代码
  • 用java实现冒泡排序算法
  • java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排序算法的描述
  • 冒泡算法的改进具体实现
  • c语言实现冒泡排序、希尔排序等多种算法示例
  • C++ 基本算法 冒泡法、交换法、选择法、实现代码集合
  • C经典冒泡排序法实现代码
  • Java中的数组排序方式(快速排序、冒泡排序、选择排序)
  • 又一个PHP实现的冒泡排序算法分享 iis7站长之家
  • c#冒泡排序示例分享
  • c++冒泡排序示例分享
  • 深入Java冒泡排序与选择排序的区别详解
  • shell编程中的冒泡排序问题
  • c语言冒泡排序法代码
  • 冒泡排序的三种实现方法
  • 控制台显示java冒泡排序流程示例
  • Java冒泡排序(Bubble Sort)实例讲解
  • java冒泡排序和选择排序示例
  • php冒泡排序、快速排序、快速查找、二维数组去重实例分享
  • 用c语言实现冒泡排序,选择排序,快速排序
  • java数组排序示例(冒泡排序、快速排序、希尔排序、选择排序)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • JQuery中阻止事件冒泡几种方式及其区别介绍
  • jQuery中阻止冒泡事件的方法介绍
  • jQuery中事件对象e的事件冒泡用法示例介绍
  • 一个小例子解释如何来阻止Jquery事件冒泡
  • 关于javascript冒泡与默认事件的使用详解


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3