冒泡排序(JAVA實現)
基本思想:在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較大的數往下沈,較小的往上冒。
即:每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換。
代碼實現:
public class Sort { public void sort(int[] a){ for(int i=0;i<a.length-1;i++){ for(int j=0;j<a.length-i-1;j++){ if(a[j]<a[j+1]){int m; m=a[j]; a[j]=a[j+1]; a[j+1]=m; } } } for(intn:a){ System.out.print(","+n); } } public static void main(String[] args) { int[] b={5,4,8,3,7,2,1,9,0,6}; Sort t = new Sort(); t.sort(b); } }
冒泡排序(JAVA實現)
相關推薦
冒泡排序(JAVA實現)
[] string 個數 -1 out 進行 image args com 基本思想:在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較大的數往下沈,較小的往上冒。 即:每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就
數據結構與算法—冒泡排序(Java實現)
數據結構 算法 Java 冒泡排序 [toc] 冒泡排序 程序代碼 package com.uplooking.bigdata.datastructure; import java.util.Arrays; public class BubbleSort { public st
排序算法入門之希爾排序(java實現)
入門 介紹 插入 一次 變化 shells ngx i++ ava 希爾排序是對插入排序的改進。插入排序是前面元素已經有序了,移動元素是一個一個一次往後移動,當插入的元素比前面排好序的所有元素都小時,則需要將前面所有元素都往後移動。希爾排序有了自己的增量,可以理
排序算法入門之快速排序(java實現)
大小 ava 相對 其余 時間 個數 技術分享 算法 元素交換 快速排序也是一種分治的排序算法。快速排序和歸並排序是互補的:歸並排序將數組分成兩個子數組分別排序,並將有序的子數組歸並以將整個數組排序,會需要一個額外的數組;而快速排序的排序方式是當兩個子數組都有序
數據結構與算法—插入排序(Java實現)
數據結構 算法 Java 插入排序 [toc] 插入排序 程序代碼 package com.uplooking.bigdata.datastructure; import java.util.Arrays; public class InsertSort { public st
快速排序(java實現)
oid 快速排序 main 優化 尋找 隨機 [] 位置 優化策略 一,算法思想:要實現快速排序,一般策略是先隨意的選取a[left]作為切分的基準元素,通俗來講就是標誌元素,往後循環都和這個標誌元素進行比較。然後我們循環從數組的右端開始往左端循環找尋小於切分元素的元素a[
氣泡排序和快速排序(java實現)
氣泡排序 Bubble Sort 在基於 “交換” 進行排序的方法中,氣泡排序是比較簡單的一種。 /** * 氣泡排序 * 時間複雜度為O(n^2),空間複雜度為O(1) */ public static int[] bubbleSort(int[] array){
基數排序(java實現)
思路 演算法屬性 程式碼 思路 將所有待比較數值(正整數)統一為同樣的數位長度,數位較短的數前面補零。然後,從最低位開始,依次進行一次排序。這樣從最低位排序一直到最高位排序完成以後,數列就變成一個有序序列。 將所有待比較數值(正整數)統一
歸併排序(Java實現)
歸併排序先遞迴地將陣列分成兩半分別排序,然後將結果歸併起來,遵循分冶模式: 分解:分解待排序的n個元素的序列成各具n/2個元素的兩個子序列。 解決:使用歸併排序遞迴地排列兩個子序列。 合併:合併兩個已
堆排序(Java實現)
堆排序指利用堆這種資料結構的一種排序演算法,是選擇排序的一種。 如果是非降序排序,需要使用大根堆(是完全二叉樹),即每個節點的值都不大於父節點的值。將二叉樹的節點按照層級順序放入陣列,用長度為N+1的私有pq[]來表示一個大小為N的堆(為後面計數方便,不使用pq
只含有0,1,2的陣列的排序(java實現)
要求對只含有0,1,2的陣列進行排序,時間複雜度為O(n),空間複雜度為1 秋招筆試題 /*思路: * 設定三個標記指標:iZero, iOne, iTwo * 令iZero從前往後遍歷,指向第一個
LeetCode 451. Sort Characters By Frequency 按照字元頻率排序(Java實現)
題目 Given a string, sort it in decreasing order based on the frequency of characters. 給定一個字串,按照其中字元出現的頻率排序。 注意大小寫敏感,並且字元相同應該排列在一起。 解題思路 這道題的關
快速排序(java實現)例項
快速排序的核心思想是:通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小,然後再按此方法對這兩部分資料分別進行快速排序,整個排序過程可以遞迴進行,以此達到整個資料變成有序序列。 下面是java寫的快速排序演算法: public class Searc
希爾排序(java實現)演算法詳解
希爾排序也是一種插入排序演算法,也叫作縮小增量排序,是直接插入排序的一種更高效的改進演算法。 希爾排序因其設計者希爾(Donald Shell)的名字而得名,該演算法在 1959 年被公佈。一些老版本的教科書和參考手冊把該演算法命名為 Shell-Metzner,包含了 Marlene Metzner No
插入排序和希爾排序(Java實現)
1、插入排序 插入排序就是每一步都將一個待排資料按其大小插入到已經排序的資料中的適當位置,直到全部插入完畢。 2、插入排序Java程式碼實現 /** * @Comment 插入排序 * @Author Ron *
希爾排序(Java實現)
希爾排序是對插入排序的改進,交換的是不相鄰的元素以對陣列的區域性進行排序,並最終用插入排序將區域性有序的陣列排序。希爾排序先使陣列中任意間隔為h的元素都是有序的,這樣的陣列被稱為h有序陣列(一個h有序陣列即一個由h個有序子陣列組成的陣列),在進行排序時,如果h很
插入排序(java 實現)
前言 最近複習資料結構,把插入排序實現了一下,程式碼如下,歡迎指導。 插入排序 private static void insertSort(Integer[] data) {
排序演算法之——計數排序(Java實現)
今天,我來講一講計數排序。計數排序與堆排序快速排序等排序不同,它是一種非比較排序,已經有人證明過,比較排序的時間下界是Ω(nlogn),但這個性質是不適用於計數排序的,因為它不是比較排序。他的時間是線性的。 計數排序假設n個輸入,每個都是介於0
插入排序(Java實現)
維基百科的定義: 插入排序(英語:Insertion Sort)是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃描,找到相應位置並插入。
排序演算法之——合併排序/歸併排序(Java實現)
今天,來講一講合併排序,其實我已經寫了 堆排序 和 快速排序,本來都不想寫這個,但是,當我發現我身邊很多人竟然都不知道這個排序的時候,我震驚了,畢竟,這是一個經典的入門演算法(反正外國貌似是這樣的,根據我看的書和視訊),歷史也十分悠久。下面就來講講這歷史悠久