最簡單的演算法:氣泡排序
從左向右掃瞄資料:選擇最大的資料,放在右邊
比較相鄰的兩個數,如果左邊的數大於右邊的數就進行交換。
**如下:
#include using namespace std;
void bubble_sort(int p,int n)
}int main()
; bubble_sort(a,sizeof(a)/sizeof(a[0]));
for(int i=0;i
cout主要就是兩個迴圈可以這樣理解:第乙個迴圈是已經排好的數。第二個迴圈是比較大小需要進行的次數。
剛開始拍好的數是0個,所以需要n-1次查詢資料進行排列,找到最大的數之後i=1,記錄
後面依次理解。所以總的迴圈次數為n*n,資料的複雜度是o(n^2),很浪費資源。
資料結構 排序演算法(2) 選擇排序
表現最穩定的排序演算法之一,因為無論什麼資料進去都是o n2 的時間複雜度,所以用到它的時候,資料規模越小越好。唯一的好處可能就是不占用額外的記憶體空間了吧。選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理 首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位...
C 資料結構與演算法分析 排序(2)
前面已經介紹了基礎的插入排序 選擇排序和氣泡排序,以及高效的希爾排序,看這裡。下面介紹剩餘的部分。堆排序使用了選擇排序固有的方法,採用找最大元素的方法,從陣列末尾開始放置 將數組建堆,堆的根節點數值最大,將其放在陣列末尾,然後排除掉這個已在最合適位置的元素,重新建堆,根節點代表的最大元素放到陣列的倒...
資料結構 c 排序演算法
排序是將乙個記錄的任意序列,重新排列成乙個按關鍵字有序的序列 按非遞減或非遞增 排序演算法按排序過程中依據的不同原則可以大致分為五類 插入排序 交換排序 選擇排序 歸併排序 基數排序。下面程式均使無序序列排序成非遞減序列。資料結構使用順序表,並初始化8個元素 49,38,65,97,76,13,27...