C 實現排序演算法

2021-08-13 20:31:09 字數 2384 閱讀 4403

資料結構中有六大經典的排序演算法,分別是氣泡排序、選擇排序、插入排序、歸併排序、快速排序和堆排序,以下是用c++實現的六大經典演算法的**:

**1.氣泡排序:**

#include

#include

#include

using

namespace

std;

//一次氣泡排序

void bubble(int arr,int size)

}}//多次氣泡排序

void bubblesort(int arr, int size)

}//測試部分

void main() ;

bubblesort(arr, 5);

for (auto c : arr)

cout

<< endl;

}**2.選擇排序:**

#include

#include

#include

#include

using

namespace

std;

//此函式用於找到一次迴圈的最大值

void select(int arr, int size)

}swap(arr[pos], arr[size - 1]);

}//此函式用於剩餘size-1個數進行求最大數並把最大數放在第size-1個位置

void selectsort(int arr, int size)

}void main() ;

selectsort(arr, 5);

for (auto c : arr)

cout

<< endl;

}**3.插入排序:**

#include

#include

#include

using

namespace

std;

void insert(int arr, int i)

}arr[i] = key;

}void insertsort(int arr, int len)

}void main() ;

insertsort(arr, 10);

for (auto c : arr)

}**4.歸併排序**

#include

#include

#include

using

namespace

std;

void merge(int arr, int l, int m, int r)

for (int i = m; i <= r; i++)

int i = 0, j = 0, k = 0;

while (i < 4 && j < 4)

else

}while (i < 4)

while (j < 4)

}void main() ;

merge(arr, 0, 4, 7);

for (auto c : arr)

cout

<< endl;

}**5.快速排序**

#include

#include

#include

#include

using

namespace

std;

void quick(int arr, int l,int r)

while (arr[j] > pivot)

if (i <= j)

}if (l < j)

if (i < r)

}void main() ;

quick(arr, 0, 4);

for(auto c:arr)

cout

<< endl;

}**6.堆排序**

#include

#include

#include

using

namespace

std;

//父節點大於左右子節點

void heap(int arr, int index, int len)

if (right if (index != max)

}//從最後乙個節點開始建大頂堆,從下往上建堆

void heaplist(int arr, int len)

}//將根節點與最後乙個節點進行交換

void heapsort(int arr, int len)

}void main() ;

heapsort(arr, 10);

for (auto c : arr)

}

排序演算法C 實現

整理一下排序演算法。首先乙個陣列,a 我們先要從大到小經行排序 1.按照人們最直觀的思想,應該是一次次的遍歷,每次從裡面取最大的乙個,放到另乙個陣列裡面,這就是簡單選擇排序。2.我們從第乙個值開始,跟其後面的值對比,如果後面的大,則與後面的交換。那麼每一次的結果就是最小被放到了最後,接著是第二小的唄...

演算法 排序(C 實現)

1.氣泡排序 氣泡排序採用兩兩比較的方式。如果要由小到大排序,並且從前往後遍歷,那麼將大的往後放,第一重迴圈是比較幾輪,也就是陣列個數,第二重迴圈是從 0 到總數減去輪數。氣泡排序 void mybubble vector values 2.快速排序 快速排序就是選擇乙個基準資料,然後在陣列中 後前...

排序演算法 分配排序 C 實現

與之前的那些比較排序不同,分配排序在排序過程無須比較關鍵字,而是通過 分配 和 收集 過程來實現排序。它們的時間複雜度可達到線性階 o n 常見的分配排序有計數排序 counting sort 基數排序 radix sort 桶排序 bucket sort 美國旗幟排序 american flag ...