選擇排序與氣泡排序區別與比較
https://blog.csdn.net/weixin_38277423/article/details/70304120
區別主要在交換的方式上
每一輪都把最大或最小的元素篩選出來放在相應的位置上 這是相同的
但是
對於每一輪
比如第一輪
要把1~n 中最大的那個放到n這個位置
冒泡法每次比較和移動相鄰的兩項
而選擇排序每次交換當前項和第n項
我把程式碼寫出來你就懂了:
冒泡:
for i:=1 to n-1 do
if (a[i]>a[i+1]) then swap(i,i+1);
選擇:
for i:=1 to n-1 do
if (a[i]>a[n]) then swap(i,n);
(swap 表示交換)
總的來說,兩種排序比較的次數是相同的
但交換的次數,選擇排序是更少的
雖然兩者的時間複雜度都是 O(n^2)
但通常,選擇排序更快一點
氣泡排序是每一次都可能要交換
而選擇排序是在比較時記下a[i]的位置 最後來交換
所以他們的交換過程是不一樣的 而查詢的過程是一樣的
相關推薦
選擇排序與氣泡排序區別與比較
https://blog.csdn.net/weixin_38277423/article/details/70304120 區別主要在交換的方式上 每一輪都把最大或最小的元素篩選出來放在相應的位置上 這是相同的 但是 對於每一輪 比如第一輪 要把1~n 中最大的那個放到n這個位置
直接選擇排序法(注意區分與氣泡排序的區別)
直接選擇排序法是將指定排序位置與其他陣列元素分別對比,如果滿足條件就交換元素,注意區分氣泡排序,他不是交換相鄰的,而是把滿足條件的與指定位置的交換。比如array{7,8,6,5,9,3,1},指定把最大的放在最後一位,先從第一位開始比較,8比7大,則下一次就是6與8比較(因
Java陣列中的選擇排序與氣泡排序
兩種排序的思想 氣泡排序:在首輪,第一項和第二項比較,將大的放在後面,然後比較第二項和第三項,將大的放在後面,以此類推在首輪結束,最大的資料已經在最後一項了。在一輪輪的比較中,後面的已經排好的資料項越來越多,需要排序的資料項越來越少,直到為零。 選擇排序:在氣泡排序上做了優化,減少了交換次數,在首輪選擇最
#關於選擇排序與氣泡排序演算法詳解
關於選擇排序與氣泡排序演算法詳解 本篇主要應C語言初學者對氣泡排序和選擇排序的一個初步介紹和認知 首先我們來認識下選擇排序 那什麼是選擇排序呢?選擇排序就是指在一推數組裡每一次從待排序的資料元素中選出最小(或最大)的一個元素,放在陣列最末的位置(最前面的位置也可
堆排序與氣泡排序的比較
堆排序的過程是首先建立小頂堆(或者大頂堆),這個堆的特徵是根節點不大於(或者不小於)任何子節點。建立之後就可以通過每次取出堆中的第一個元素(這個堆的最小值或最大值)然後將新的堆調整從而下次再取第一個這種迴圈操作來得到一個有序的序列。 在建立堆的過程中都是從最後一個根節點開始
#簡單演算法知識--選擇排序(與氣泡排序對比分析)
氣泡排序程式碼: 1,-23,-6,0,34,2,87,43,-65 //表示有多少輪比較 for(int i = 1;i<=arr.length-1;i++){ //表是每輪需要比較的次數 for(int j = 1;j<=arr.length-i;j++){
快速排序與氣泡排序(面試題)
今天講一道前端開發的筆試題,題目如下: 編寫快速排序和氣泡排序,並簡單對比分析. 看到題目愣了一下,知道氣泡排序,可什麼是快速排序呢? 下面先來看一下氣泡排序: 方法一: 每一次對比相鄰兩個資料的大小,小的排在前面,如果前面的資料比後面的大就交換這兩個數的位置
將陣列升序排列的方法與氣泡排序
example array : [4,6,1,4,7,5,9,3] 更新使用JS中的sort()方法排序 : 程式碼如下 <script type="text/javascript"> var example
排序——選擇排序、氣泡排序和快速排序比較
一、選擇排序思路:1、以 int 型別為例2、拿第一個數與後面數相比較,如果比後面的數大則交換3、拿第二個數與後面的數比較,如果比後面的數大則交換4、直到比較到倒數第二個數,最後一個數不用比較5、兩個數比較可以用中間變數替換或者位運算6、利用位運算時需注意,如果兩個數相等則不能使用位運算7、函式程式碼如下:v
排序(氣泡排序與快速排序)
1、氣泡排序(Bubble Sort) 將n個記錄進行氣泡排序的主要方法: 第一趟:將第一個記錄與第二個記錄比較,再將第二個與第三個比較(如果逆序就交換)......直到第n-1個與第n個比較得出:第n個記錄最大(最小); 第二趟:將第一個記錄與第二個記錄比較,再將第二個
安卓快速排序與氣泡排序
直接上程式碼~ 氣泡排序 private void swap(int[] arrays, int i, int j) { int temp; temp = ar
Java二分法查詢與氣泡排序
1、二分法: 在給出的有序排列的陣列中,把目標值和陣列中間值進行比較,如果相等,則返回中間值下標,如果目標值小於中間值,就從數 組的前半段再次執行二分法查詢,如果目標值大於中間值,從陣列的後半段開始二分法查詢。 二分法查詢主要是比較的次數少,查詢的速度快,平均效能好。
C語言 陣列與氣泡排序
17.陣列 ① 在程式設計中,為了處理方便,把具有相同型別的若干變數按有序的形式組織起來。這些按序排列的同類資料元素的集合稱為陣列。 在C語言中,陣列屬於構造資料型別。一個數組可以分解為多個數組元素,這些陣列元素可以是基本資料型別或是構造型別。 陣
插入排序、氣泡排序、選擇排序、快速排序、堆排序、歸併排序演算法比較
//插入排序、氣泡排序、選擇排序、快速排序、堆排序、歸併排序 #include"stdio.h" #include"stdlib.h" #include"time.h" #define M 1000 int shu[M]; //存放要排序的陣列 int chang;
Java NIO與IO的區別和比較
選擇器 獲取 如果 得到 提供服務 單獨 每次 取數 details 現代的酒店服務方式跟傳統的區別有兩個:1、增加了一個角色,要有一個專門負責收集客人需求的人。NIO裏對應的就是Selector。2、由阻塞服務方式改為非阻塞服務了,客人吃著的時候服務員不用一直侯在客人旁邊
各種排序演算法,一步步更新(一),桶排序,氣泡排序,選擇排序,快速排序
部分方法來自我關注的博主 J_小浩子 謝謝 1 桶排序 bucketsort 1 桶排序 #include <stdio.h>//桶排序基本說明 int main(){ int data1[11]={0},tem
陣列的常見排序演算法--氣泡排序,選擇排序
陣列的排序演算法--氣泡排序,選擇排序 1.氣泡排序 基本思想 演算法實現 2.選擇排序演算法 基本思想 演算法實現 程式設計中,我們會經
排序演算法:選擇排序,直接插入排序,氣泡排序
package com.Algorithm.Search_Sort; import java.util.Arrays; public class Sort { public int array[] = {99,34,76,92,34,17,77,41,40,36,6}; //
python: 選擇排序,氣泡排序,插入排序,快速排序
def selectSort(lyst): n = len(lyst) for i in range(n - 1): minindex = i for j in range(i + 1, n): if lyst[j] <
Python三種排序演算法的執行速度對比(快速排序、氣泡排序、選擇排序)
最近看了一下快速排序演算法,據說速度比其他的排序演算法快,於是寫了三個排序演算法對比一下,分別是氣泡排序,快速排序,選擇排序,以下是三個排序演算法的程式碼: 氣泡排序 BubbleSort.py # -*- coding:utf8 -*- def Sort(list