程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 冒泡排序算法道理及JAVA完成代碼

冒泡排序算法道理及JAVA完成代碼

編輯:關於JAVA

冒泡排序算法道理及JAVA完成代碼。本站提示廣大學習愛好者:(冒泡排序算法道理及JAVA完成代碼)文章只能為提供參考,不一定能成為您想要的結果。以下是冒泡排序算法道理及JAVA完成代碼正文


冒泡排序法:症結字較小的記載比如氣泡逐趟上浮,症結字較年夜的記載比如石塊下沉,每趟有一塊最年夜的石塊沉底。

算法實質:(最年夜值是症結點,確定放到最初了,如斯輪回)每次都從第一名向後轉動比擬,使最年夜值沉底,最小值上升一次,最初一名向前推動(即最初一名剛肯定的最年夜值不再加入比擬,比擬次數減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;
    }
   }
  }
 }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved