選擇排序和氣泡排序總結
選擇排序和氣泡排序總結
選擇排序
遞增排序一個序列,從待排序元素中選出最小的元素,和起始位置的元素交換,然後從剩餘元素中繼續選最小元素,這是一種不穩定的方法,時間複雜度n^2。比較簡單的演算法
氣泡排序
比選擇排序效能更加優一點的排序方法。
第一輪迴圈(1:n):開始先比較第一第二個元素的大小,如果第二個小於第一個,則交換,反之則保持不變。然後繼續比較第二個和第三個,這樣一直比較到第n-1個和第n個。結束第一輪迴圈
第二輪迴圈(1:n-1):繼續比較第一個和第二個的大小關係,一直比較到n-2和n-1個元素。結束第二輪迴圈
一直持續到第n-1輪迴圈
時間複雜度n^2
兩種演算法的比較
選擇排序為不穩定的排序,氣泡排序為穩定排序。
1.選擇排序需要交換元素的次數明顯少於氣泡排序。且氣泡排序的交換次數和待排序序列的順序程度相關性大
2.兩者的空間複雜度一致,只需要一個額外空間o(1)
3.兩者每一輪大迴圈都能選出一個最優數(最大或最小的數)
如果文章存在錯誤或哪裡不懂的,歡迎交流2018-12-18
相關推薦
選擇排序和氣泡排序總結
選擇排序和氣泡排序總結 選擇排序 氣泡排序 兩種演算法的比較 選擇排序 遞增排序一個序列,從待排序元素中選出最小的元素,和起始位置的元素交換,然後從剩餘元素中繼續選最小元素,這是一種不穩定的方法,時間複雜度n^2。比較簡單的演算法
【陣列排序】 -選擇排序和氣泡排序
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input=new Scanner(System.in); in
選擇排序和氣泡排序
2018年11月09日 10:15:21 vhuij; 閱讀數:4 標籤: ```
排序 (2) -----簡單選擇排序和氣泡排序
簡單選擇排序和氣泡排序 兩種方法都是每一趟找出最大(小)的他放在一個位置,下一趟不用去管這個位置,只是兩種方法採用的找的形式不一樣 1. 簡單選擇排序:固定位置與前(後)面的比較 例子:5 1 6 2 假如按從小到大排序 5:粗體標記表示 固定的位置 5:這種標記表示已經排好
C#選擇排序和氣泡排序
在上一篇文章中《演算法排序》中簡單介紹了選擇排序和氣泡排序,這次讓咱們緊接著上次的節奏繼續來學習這兩種排序。都說是萬事開頭難,其實有了充分的準備一點都不難了,在本文中,小編將要介紹演算法排序的圖形過程
常用內部排序演算法之四:簡單選擇排序、直接插入排序和氣泡排序
前言 之所以把這三類演算法放在一塊,是因為除此之外的演算法都是在這三類演算法的基礎上進行優化的。簡單選擇排序的思想是每一趟n−i+1(i=1,2,...,n−1)個記錄中選擇最小的記錄作為有序序列的第i個記錄。直接插入排序的思想是將一個記錄插入到已經排好序的有
Java中的選擇排序和氣泡排序思想及程式碼實現
選擇排序 選擇排序基本思想(假設從大到小排序): 初始化一個數組:int[] array={n個數據} 第1次排序:將索引為0的元素取出來,用該元素與之後的每一個元素做比較,比該元素小則不動,比該元素大則交換二者的數值,依次比較到最後,這樣最大值就放到了索引為0
排序演算法(一)選擇排序和氣泡排序
1. 選擇排序: 選擇排序是一種很簡單直觀的排序方法,就是在未排序的資料中挑選出最大或者最小的元素,存放到已排序資料的末尾。 簡單的講,就是每次都把最大或者最小的資料挑選出來,然後依次組成新的序列。 假設有資料{1,4,6,8,3,4,0,2,14},要按照從大到小進行
簡單的選擇排序和氣泡排序
忽然想起個小知識點,隨手記錄一下 選擇排序:基本思路是依次選中每個元素,然後一一和後邊的元素進行比較 int[] a = {2,5,1,6,3}; for(int i=0;i<a.lengt
陣列選擇排序和氣泡排序
1、選擇排序(直接排序) public class ArraySelectSort { public static void main(String[] args) {
記錄兩個簡單的桶排序和氣泡排序
桶排序 關於桶排序先做幾點說明: 1)桶排序是穩定的; 2)桶排序是常見排序演算法中最快的一種,大多數情況下比快排和歸併排序還要快 3)桶排序非常快但是也非常消耗空間,典型的以空間換時間,基本上是最耗記憶體的一種排序演算法。 桶排序中:無序陣列有
插入排序和氣泡排序
#include "stdafx.h" #include<cstdio> #include<iostream> using namespace std; const int maxn=110; const int inf=0x7fffffff; typedef long l
直接插入排序和氣泡排序
直接插入排序(演算法思想): 把n個待排序的元素看成一個有序表和一個無序表,開始時有序表中沒有元素,無序表中有n個元素;排序過程即每次從無序表中取出第一個元素,將它插入到有序表中,使之成為新的有序表,重複n次完成整個排序過程 def insert_sort(List): for
氣泡排序和氣泡排序去重
氣泡排序 氣泡排序(Bubble Sort),是一種電腦科學領域的較簡單的排序演算法。 它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。 這個演
分組排序和氣泡排序
#include <iostream> #include <ctime> #include <cstdlib> using namespace std; void groupSort() { srand(unsigne
從大到小排序(區分順序排序和氣泡排序)
/*int[] numbs = { 3,2,9,7,5,6}; int temp = 0; for (int i = 0; i < numbs.Length; i++) { f
排序演算法總結-選擇排序、插入排序、歸併排序和快速排序
前言: 感覺好久沒寫部落格了,十月份的計劃是:要開始深入攻克資料結構和演算法,耽誤好久了,這都月末了,抓緊時間又學習了一波,趕緊來分享了一下,使用的語言是C++,最開始學資料結構一定要用C,掌握紮實之後,想學演算法,用C++比較好,C封裝沒有那麼好,寫起來沒有那麼容易了。 一、準備工作
三個基本排序演算法執行效率比較(氣泡排序,選擇排序和插入排序)
1、冒泡演算法。 冒泡演算法是最基礎的一個排序演算法,每次使用第一個值和身後相鄰的值進行比較,如果是升序將大數向左邊交換,降序則向右邊交換。最終將大數移動到一邊,最終排成一個序列: public class Sorting { public void Bubble
(c語言)選擇排序法和氣泡排序法
問題描述: 給定一個數組(或者輸入一個數組),分別運用選擇排序法和氣泡排序法將所要的結果輸出。 程式分析: 選擇排序 1>.對於選擇排序,首先理解排序的思想。給定一個數組,這種思想首先假定
經典排序演算法之桶排序、氣泡排序和選擇排序
1.桶排序 桶排序是將待排序的資料扔到按順序排列的桶裡,如下圖: 其中每個桶都有按順序的編號(桶就是陣列,編號是陣列的下標),將每個數放到編號與之對應的桶裡,然後再將桶裡的