經典排序演算法 冒泡,選擇,插入排序

2021-10-10 04:06:20 字數 1649 閱讀 3311

基本思想

兩個數比較大小,較大的數下沉,較小的數冒起來.

演算法描述(從小到大排序)

比較相鄰元素.如果第乙個比第二個大,就交換它們兩個;

對每一對相鄰元素做相同的工作,從開始第一對到結尾的最後一對;

針對所有元素重複以上的步驟,除了最後乙個;

重複步驟1~3,直到排序完成.

**演示

**實現

public

static

int[

]bubblesort

(int

array)

return array;

}

基本思想

選擇排序是一種簡單直觀的排序演算法.它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾.以此類推,直到所有元素均排序完畢.

演算法描述(從小到大)

n個記錄的直接選擇排序可經過n-1趟直接選擇排序得到有序結果.

初始狀態:無序區為r[1…n],有序區為空;

第i趟排序(i=1,2,3…n-1)開始時,當前有序區和無序區分別為r[1…i-1]和r(i…n)。該趟排序從當前無序區中-選出關鍵字最小的記錄 r[k],將它與無序區的第1個記錄r交換,使r[1…i]和r[i+1…n)分別變為記錄個數增加1個的新有序區和記錄個數減少1個的新無序區;

n-1趟結束,陣列有序化了.

**演示

**實現

public

static

int[

]selectionsort

(int

array)

int temp = array[minindex]

; array[minindex]

= array[i]

; array[i]

= temp;

}return array;

}

基本思想

在要排序的一組數中,假定前n-1個數已經排好序,現在講第n個數插到前面的有序數列中,使得這n個數也是排好順序的.如此反覆,直到全部排好序.

演算法描述

從第乙個元素開始,該元素可以認為已經被排序;

去出下乙個元素,在已經排序的元素序列中從後向前掃瞄;

如果該元素(已排序)大於新元素,將該元素移到下一位置;

重複步驟3,直到找到已排序的元素小於或等於新元素的位置;

將新元素插入到該位置後;

重複步驟2~5.

**演示

**實現

public

static

int[

]insertionsort

(int

array)

array[preindex +1]

= current;

}return array;

}

排序演算法 冒泡 選擇 插入排序

本文簡單總結一下三大排序演算法,如有不足,請多多提意見。簡述 從小到大排序,每次比較兩個元素,看他們的順序有沒有錯,如果錯了就換過來。a 比較abc.元素,如果第乙個比第二個大,則將兩個元素交換位置 bac.再依次將a和c進行比較。b 對每一對相鄰的元素做同樣的工作,從第一對到最後一對。這一次執行完...

排序演算法 冒泡 選擇 插入排序

外層迴圈控制大排序次數,內層迴圈控制每次大排序的排序次數 一次大排序就可以把最小的資料放在最前面。1 對陣列中的各資料,依次比較相鄰的兩個元素的大小 2 如果前面的資料大於後面的資料,就交換著兩個資料。經過第一 排序後,便可把最小的資料排好。3 然後再用同樣的方法吧剩下的資料逐個比較,最後得到從小到...

《演算法》選擇排序 插入排序 氣泡排序

選擇排序,演算法 p156 package algorithm public class selection p156 for int i 0 i n i public static void main string args test.sort a 思路 將第乙個元素與剩餘所有元素相比,如果有比第...