小工具知识网

当前位置: 首页 > 行业知识 > c++数组排序的五种方法

行业知识

c++数组排序的五种方法

2026-10-30 21:09:57 来源:互联网转载

方法一:冒泡排序

  1. ���较相邻的元素。如果第一个比第二个大,就交换他们两个。

  2. 对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值。

  3. 重复以上的步骤,每次比较次数-1,直到不需要比较

示例:对数组4,2,8,0,5,7,1,3,9 进行排序

#includeusing namespace std;int main() {int arr[9] = { 4,2,8,0,5,7,1,3,9 };for (int i = 0; i  arr[j + 1]){int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}for (int i = 0; i  

if(b>c) swap(b,c);

… …

方法四:快速排序

  1. 找到分界点x,q[L],q[(L+R)/2],q[R]
  2. 左边所有数Left=x
  3. 递归排序Left,递归排序Right 

快速排序算法模板:

void quick_sort(int q[], int l, int r){    if (l >= r) return;        int i = l - 1, j = r + 1, x = q[l+r>>1]; //l+r>>1的意思是l+r的值除以2取整    while (i  x);        if (i  

方法五:归并排序

  1. 确定分界点:mid=(l+r)/2
  2. 递归排序Left,递归排序Right
  3. 归并 —— 合二为一  

归并排序算法模板

 

void merge_sort(int q[], int l, int r){    if (l >= r) return;        int mid = l + r >> 1;    merge_sort(q, l, mid);    merge_sort(q, mid + 1, r);        int k = 0, i = l, j = mid + 1;    while (i 

上一篇:C++ ─── string的完整模拟实现

下一篇:打开服务器崩溃怎么办?