1. 程式人生 > >最簡單的排序演算法之一氣泡排序----js實現

最簡單的排序演算法之一氣泡排序----js實現

1. 演算法步驟

  1. 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。

  2. 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。

  3. 針對所有的元素重複以上的步驟,除了最後一個。

  4. 持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

2. 動圖演示

動圖演示

3. 什麼時候最快

當輸入的資料已經是正序時(都已經是正序了,我還要你氣泡排序有何用啊)。

4. 什麼時候最慢

當輸入的資料是反序時(寫一個 for 迴圈反序輸出資料不就行了,幹嘛要用你氣泡排序呢,我是閒的嗎)。

5. JavaScript 程式碼實現

function bubbleSort
(arr)
{ var len = arr.length; for (var i = 0; i < len; i++) { for (var j = 0; j < len - 1 - i; j++) { if (arr[j] > arr[j+1]) { // 相鄰元素兩兩對比 var temp = arr[j+1]; // 元素交換 arr[j+1] = arr[j]; arr[j] = temp; } } } return
arr; }

相關推薦

簡單排序演算法之一氣泡排序----js實現

1. 演算法步驟 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。 針對所有的元素重複以上

JAVA八大排序演算法之一氣泡排序

/** * 氣泡排序 * 時間複雜度為n^2 排序方法穩定 * @time 2017/07/05 */ import java.util.Arrays; public class BubbleSort{ //主方法 public sta

Java面試中基礎的演算法氣泡排序演算法和二叉樹遍歷

首先是冒泡需要演算法,氣泡排序是所有的演算法最最基礎的演算法,一般人只是知道思路,但是真正的敲程式碼不一定能敲出來; 氣泡排序玩以後,使得陣列的數安從小到大的順序排列出來; 氣泡排序演算法: public void BuddleSort(){ public st

JS實現排序演算法氣泡排序、快速排序

const a = [21, 3, 242, 3432, 13, 13, 123, 4, 35, 22, 1]; // 氣泡排序 // 核心思想:每次比較相鄰的數,如果它們順序錯誤,就把它們交換過來。如同氣泡一樣往後翻滾。 // 最外層的迴圈,每次至少要讓一個元素歸位。 /

兩種簡單的陣列排序演算法氣泡排序和直接選擇排序(升序)

氣泡排序的基本思想是:面對一排資料,先從前往後兩兩比較,如果前一個數比後一個數大就交換兩者的順序,即第一個數和第二個數比,第二個數和第三個數比,……,倒數第二個數和最後一個數比,這樣一輪下來以後最大的數就排到最後;接著把除去最大的數的該組資料進行同樣的操作,直至

js排序演算法氣泡排序

//功能:氣泡排序 //引數:arr, 待排序陣列 //返回:arr1,排序後陣列 function bubbleSort(arr) { var len = arr.length;

三個簡單排序演算法氣泡排序、選擇排序、插入排序

以下從基礎開始,逐步詳細複習各個排序演算法。先從三個最基礎最簡單的排序演算法開始。他們分別是氣泡排序、選擇排序、插入排序。以下都是java程式碼,並且認為升序是有序。一、氣泡排序1、程式碼public class Main{//氣泡排序 public static void

(排序演算法)linux c語言實現選擇排序演算法氣泡排序的略微改進版)

 快速排序演算法和氣泡排序演算法是差不多的,都是要兩層迴圈,外迴圈是要比較的個數,其實就是元素的個數,內迴圈就是外層那個標記和其他的比較大小, 氣泡排序是相鄰的兩個,兩兩比較,最後交換出一個最大或者最小值, 快速排序是在氣泡排序的基礎上,找出那個最小的或者最大的,但是不是直接交換,

c#程式碼實現排序演算法氣泡排序

氣泡排序的平均時間複雜度為O(n²),最好時間複雜度為O(n),最壞時間複雜度為O(n²),空間複雜度為O(1),是一種穩定的演算法。 1.將整個待排序的記錄序列劃分成有序區和無序區,初始時有序區為空,無序區包括所有待排序的記錄。 2.對無序區從前向後依次比較相鄰記錄,若反序則交

排序演算法氣泡排序(關鍵詞:資料結構/演算法/排序演算法/氣泡排序

假定:有 1 個亂序的數列 nums ,其中有 n 個數。 要求:排好序之後是 從小到大 的順序。 氣泡排序演算法 程式碼 from swap import swap def bubble_sort(nums): n = len(nums) for i in rang

排序演算法一--氣泡排序

    氣泡排序(BubbleSort) 基本思想:兩個數比較大小,較大的數下沉,較小的數冒起來 思路: 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。 對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數

《資料結構與演算法》之排序演算法氣泡排序、選擇排序

排序(Sorting) 是計算機程式設計中的一種重要操作,它的功能是將一個數據元素(或記錄)的任意序列,重新排列成一個關鍵字有序的序列。 排序演算法分類: 一、非線性時間比較類排序 1、交換排序(氣泡排序、快速排序) 2、插入排序(簡單插入排序、布林排序) 3、選擇排序(簡單選擇

排序演算法上——氣泡排序、插入排序和選擇排序

1. 排序演算法? 排序演算法應該算是我們最熟悉的演算法了,我們學的第一個演算法,可能就是排序演算法,而在實際應用中,排序演算法也經常會被用到,其重要作用不言而喻。 經典的排序演算法有:氣泡排序、插入排序、選擇排序、歸併排序、快速排序、計數排序、基數排序、桶排序。按

排序演算法氣泡排序【java實現

氣泡排序介紹 基本思想就是相鄰資料交換,每次將最大或最小的數進行移動。 步驟:(1)對陣列中的各資料,依次比較相鄰的兩個元素的大小。            (2)如果前面的資料大於(小於)後面的資料,就交換這兩個資料。經過第一輪

【一起學習排序演算法氣泡排序

氣泡排序 Bubble sort 本系列的文章列表和相關說明,請檢視【一起學習排序演算法】0.序言 也可以直接到github上檢視完整的文章和原始碼! 原理 先看看Wikipedia的定義: Bubble sort is a simple sorting algorithm that

排序演算法氣泡排序——2種形式

1.第一種形式氣泡排序 package Sort; public class BubbleSort1 {     public static void main(String[] args) {      &nbs

【python資料結構與演算法】幾種排序演算法氣泡排序、快速排序

以下排序演算法,預設的排序結果是從小到大。 一.氣泡排序: 1.氣泡排序思想:越大的元素,就像越大的氣泡。最大的氣泡才能夠浮到最高的位置。 具體來說,即,氣泡排序有兩層迴圈,外層迴圈控制每一輪排序中操作元素的個數——氣泡排序每一輪都會找到遍歷到的元素的最大值,並把它放在最後,下一輪排序時

排序演算法氣泡排序改進演算法

前言 排序演算法中最最常見也算是入門的一個排序演算法就是氣泡排序。這篇文章我們就來好好地寫寫這個氣泡排序演算法,以及氣泡排序呢的改進演算法。 傳統冒泡演算法 static int[] array = {100,1,5,4,11,2,20,18,89,34,20,34}; @Test publ

排序演算法氣泡排序(Bubble Sort)

一、簡介 氣泡排序(Bubble Sort)也是一種簡單直觀的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢“浮”到數列的頂端。 二、

Kata系列之排序演算法氣泡排序

Kata系列之排序演算法的氣泡排序: /*** 靜態變數*/private static int tempNum=0;/*** 氣泡排序* * 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。* 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最* 後一對。在這一點,