排序演算法(一)

2021-10-23 11:45:48 字數 1172 閱讀 7780

氣泡排序可以說是非常經典的一種排序演算法也是最為基礎的一種排序演算法,其演算法如其名,將元素像泡泡一樣的往上浮動到水面。廢話不多說,直接上圖。

此圖能夠清晰的表現出冒泡演算法的核心之處,就是在於兩兩元素間的比較,小的則放前面,遍歷一遍後可以清楚的發現最大的元素已經排到了末尾,由此我們可以得出僅需要遍歷n-1遍即可以得出最終結果。但是這裡有乙個細節之處在於並不是每一次遍歷都需要從頭元素到尾元素,因為每遍歷一次,後面都會確定乙個,所以每輪遍歷應該是從0到n-i,接下來上**:

int arr=new int;//定義乙個用來測試的陣列

選擇排序的過程相對比較簡單,也是大部分人第一時間能夠想到的,就是每次遍歷確定乙個最小的元素,然後將其放在最前面,跟氣泡排序的意思有點相反的意思(冒泡每次確定乙個最大的數),所以每次遍歷也不用遍歷所有的元素,從i到n即可。

int arr=new int;//定義乙個用來測試的陣列

int min_index,temp;

for (int i = 0; i < arr.length - 1; i++) ;//定義乙個用來測試的陣列

int preindex,current;

for (int i=1;i< arr.length;i++);//定義乙個用來測試的陣列

for (int gap = (int) math.floor(arr.length / 2); gap>0; gap= (int) math.floor(gap/2))

public void merge(int arr,int left,int mid,int right)else

}while (s1<=mid)

while (s2<=right)

for (int j=0;j< ret.length;j++)

}

[2]:

排序演算法(一)

這個學期課程很少,空閒時間很多,故重新複習了一下 演算法導論 中的常用演算法和資料結構,並且將實現 儲存到部落格,以便大三暑假找實習時方便複習。直接插入排序的思想非常簡單,將序列中第乙個元素作為乙個有序序列,然後將剩下的n 1個元素按關鍵字大小依此插入該有序序列,每插入乙個元素後依然保持該序列有序,...

排序演算法一

3個簡單的排序演算法,不多解釋了,直接上 include include void display int a,int n printf n void exchange int a,int i,int j 氣泡排序 void popsort int a,int n end for j printf ...

排序演算法(一)

氣泡排序 基本思想 在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉 較小的往上冒。即 每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換。氣泡排序的示例 演算法實現 void print int arr,int size...