Java陣列排序-氣泡排序
Java的陣列排序有多種方式,其中有氣泡排序,選擇排序,插入排序等,這一篇說一下氣泡排序的實現。
氣泡排序其實是將一個數組的相鄰兩個元素兩兩比較,大的元素往後放,當第一次比較完畢後最大的元素就會排到陣列的最右邊,這樣同理繼續比較下去,就會得到一個排序好的陣列。
它是有規律的:
1 每一次比較完畢後相對最大的值都會排到陣列的右邊
2 每一次比較後,下一次比較就會減少一個元素的比較
3 一共需要比較陣列長度的length-1次
畫一張圖幫助理解一下:
-------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
寫一個例子執行下
public class BubbleDemo { public static void main(String[] args) { int[] arr = new int[] { 2, 34, 56, 43, 45 }; int[] arr2 = getBubble(arr); for (int a : arr2) { System.out.print(a + " "); } } public static int[] getBubble(int[] arr) { // 氣泡排序 for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } return arr; } }
相關推薦
java陣列以及氣泡排序實現過程
陣列: 1.什麼是陣列 程式:由人事先寫好的,讓電腦做的 程式=演算法+資料結構 一個好的演算法+資料結構=優秀的程式 演算法:變數,運算子,分支,迴圈 資料結構:陣列是一種最基本的資料結構 集合 陣列可以理解為一個容器 水杯=容器 儲存水 陣列
Java中陣列的氣泡排序,氣泡排序優化
氣泡排序: 思路: int[] arr={3,4,2,6,1}; 1.第一次排序,從索引[0]開始,依次兩兩比較。索引[0]與[1]比,[1]與[2]比,[2]與[3]比…… if(arr[0]<arr[1]){
Java實現陣列的氣泡排序
注意: 1 迴圈圈數越來越少 2 每次迴圈比較次數越來越少 3 每次比較都從索引0和索引1開始 public class BubbleSort{ public static void m
Java中的陣列實現氣泡排序法
/** * 不使用Arrays的sort方法來排序無規則陣列; * * */ public class MaoPaoDemo { public static void main(String[] args) { int [] arrs = {9,5,8,10,
Java語言陣列排序——氣泡排序,選擇排序,快速排序,直接插入排序
今天主要來說下陣列排序的問題,主要介紹的有氣泡排序,選擇排序,快速排序,直接插入排序四種排序: 1.氣泡排序: 主要有原理圖與程式碼解釋; 原理圖借鑑一位老師畫的圖,嘻嘻,老師畫的圖比較好看,就拿來借鑑下: 2.選擇排序 3.快速排序 4.直接插
Java陣列排序-氣泡排序
Java的陣列排序有多種方式,其中有氣泡排序,選擇排序,插入排序等,這一篇說一下氣泡排序的實現。 氣泡排序其實是將一個數組的相鄰兩個元素兩兩比較,大的元素往後放,當第一次比較完畢後最大的元素就會排到陣列的最右邊,這樣同理繼續比較下去,就會得到一個排序好的陣列。 它是有規律
Java 案例六 奇數求和 水仙花 列印乘法口訣 列印陣列 逆序輸出陣列 選擇排序 氣泡排序 折半查詢
1.奇數求和 /* 編寫程式求1+3+5+...+99的和值 有一個數據從0變到100 迴圈 int i = 0; ,+100 ++ 從0-100,範圍內找到奇數 數%2==1 奇數 所有的奇數求和 需要變數,儲存奇數的求和 實現步驟: 1.程式中可以使用的資料
java實現陣列的氣泡排序、選擇排序程式碼
陣列排序之氣泡排序: 相鄰元素兩兩比較,大的往後放,第一次完畢,最大值出現在了最大索引處 package cn.lgt.sortarray; public class MaoPaoSort {
Java 案例六 奇數求和 水仙花 列印乘法口訣 列印陣列 逆序輸出陣列 選擇排序 氣泡排序 折半查詢
1.奇數求和 /* 編寫程式求1+3+5+...+99的和值 有一個數據從0變到100 迴圈 int i = 0; ,+100 ++ 從0-100,範圍內找到奇數 數%2==1 奇數 所有的奇數求和 需要變數,儲存奇數的求和 實現步驟: 1.程式中可
Java學習路程之陣列與排序(氣泡排序、選擇排序、折半查詢)
一.陣列 1.一維陣列:儲存一組相同資料型別的元素. 2.陣列的三種宣告方式 array為陣列的命名 資料型別表示的是陣列中元素的資料型別 int[] array = new int[陣列長度]; int[] array =
JNI之c/c++返回中文給java 亂碼問題以及java陣列在c排序
c/c++返回中文給java時會亂碼,因為java和c/c++的編碼格式不一樣,java的utf-16,c/c++是utf-8,所以在返回中文字元的時候,包裝成gb2312返回。 具體見如下部落格連結: jni互動中文亂問題分析 public class CodeTest {
Java基礎 String 裸暴力演算法- 五個小練習 Java陣列直接選擇排序、sort()排序
之間的部落格,承上啟下: Java基礎 String/StringBuff 常用操作方法複習/記憶體分析 Java陣列直接選擇排序、sort()排序 Java基礎 String 演算法 - 五個練習題目要求: /** 1.模擬一個trim方法,去除
Java經典演算法氣泡排序
氣泡排序、 實現原理: 比較兩個相鄰位數的元素,將較大的元素交換到右端或左端,最大的元素就在最右端或是最左端; 從小-->大 1 public class MaoPao { 2 3 public static void
java演算法之氣泡排序法
氣泡排序法 口訣: 外層迴圈 0到n-1 //控制比較輪數 n 表示元素的個數 內層迴圈 0到n-i-1 //控制每一輪比較次數 兩兩比較做交換 氣泡排序的優點:每進行一趟排序,就會少比較一次,因為每進行一
Java中的氣泡排序
import java.lang.reflect.Array; import java.util.Arrays; import java.util.Random; /** * 生成一個[10,20]之間的隨機長度,裡面的元素是[10,50]之間的陣列 * 氣泡排序 &nb
陣列、氣泡排序、選擇排序
一、一維陣列 程式: 結果: 總結: (1)12行的結果為40:系統會為一個數組分配一段連續的儲存空間。每個資料元素佔用的位元組數,就是基型別的位元組數,一個元素佔4個位元組。int array1[10];由於陣列1是int型的(佔四個位元組),而且陣列1裡有
java實現數排序-氣泡排序
一、原理: 氣泡排序----比較相鄰的兩個數,將較大的數放在右端。 N個數氣泡排序—需要進行(N-1)趟排序,第i趟需做(N-i)次比較。 第1趟:比較length個數後,排出最大數。 第2趟,最大數不做比較,比較length-1個數後,排出第二大數 … 二、
Java和C氣泡排序
Java 示例程式碼: public class test { public static void main(String[] args) { String str = "321dca5"; //需要排序的字串 char[] new_string; new_str
Java陣列3種排序方法
一、陣列封裝好的排序方法 public static void main(String[] args) { i
OJ陣列——雙向氣泡排序
/* * Copyright (c) 2014, 煙臺大學計算機學院 * All rights reserved. * 檔名稱:test.cpp * 作 者:李曉凱 * 完成日期:2015年 1