建立一个国外的网站,seo优化报价公司,wordpress简易主题,标志设计欣赏网站以下是几种经典排序算法的C实现#xff0c;包含冒泡排序、选择排序、插入排序、快速排序和归并排序#xff1a;
#include iostream
#include vector
using namespace std;// 1. 冒泡排序
void bubbleSort(vectorint arr) {int n arr.size();f…以下是几种经典排序算法的C实现包含冒泡排序、选择排序、插入排序、快速排序和归并排序
#include iostream
#include vector
using namespace std;// 1. 冒泡排序
void bubbleSort(vectorint arr) {int n arr.size();for (int i 0; i n-1; i) {for (int j 0; j n-i-1; j) {if (arr[j] arr[j1]) {swap(arr[j], arr[j1]);}}}
}// 2. 选择排序
void selectionSort(vectorint arr) {int n arr.size();for (int i 0; i n-1; i) {int minIdx i;for (int j i1; j n; j) {if (arr[j] arr[minIdx]) {minIdx j;}}swap(arr[i], arr[minIdx]);}
}// 3. 插入排序
void insertionSort(vectorint arr) {int n arr.size();for (int i 1; i n; i) {int key arr[i];int j i - 1;while (j 0 arr[j] key) {arr[j1] arr[j];j--;}arr[j1] key;}
}// 4. 快速排序
int partition(vectorint arr, int low, int high) {int pivot arr[high];int i low - 1;for (int j low; j high; j) {if (arr[j] pivot) {i;swap(arr[i], arr[j]);}}swap(arr[i1], arr[high]);return i1;
}void quickSort(vectorint arr, int low, int high) {if (low high) {int pi partition(arr, low, high);quickSort(arr, low, pi-1);quickSort(arr, pi1, high);}
}// 5. 归并排序
void merge(vectorint arr, int left, int mid, int right) {int n1 mid - left 1;int n2 right - mid;vectorint L(n1), R(n2);for (int i 0; i n1; i) {L[i] arr[left i];}for (int j 0; j n2; j) {R[j] arr[mid 1 j];}int i 0, j 0, k left;while (i n1 j n2) {if (L[i] R[j]) {arr[k] L[i];i;} else {arr[k] R[j];j;}k;}while (i n1) {arr[k] L[i];i;k;}while (j n2) {arr[k] R[j];j;k;}
}void mergeSort(vectorint arr, int left, int right) {if (left right) {int mid left (right - left) / 2;mergeSort(arr, left, mid);mergeSort(arr, mid1, right);merge(arr, left, mid, right);}
}// 测试代码
int main() {vectorint arr {64, 25, 12, 22, 11};// 选择一种排序算法调用// bubbleSort(arr);// selectionSort(arr);// insertionSort(arr);// quickSort(arr, 0, arr.size()-1);mergeSort(arr, 0, arr.size()-1);cout 排序后的数组: ;for (int num : arr) {cout num ;}cout endl;return 0;
}各排序算法特点 冒泡排序Bubble Sort 时间复杂度O(n²)稳定排序重复比较相邻元素并交换位置 选择排序Selection Sort 时间复杂度O(n²)不稳定排序每次从未排序部分选择最小元素放到已排序部分末尾 插入排序Insertion Sort 时间复杂度O(n²)稳定排序将未排序数据插入到已排序序列的合适位置 快速排序Quick Sort 平均时间复杂度O(n log n)不稳定排序分治法选择基准值并分区 归并排序Merge Sort 时间复杂度O(n log n)稳定排序分治法将数组分成两半分别排序后合并
在main函数中你可以取消注释相应的排序函数调用来测试不同的排序算法。 文章转载自: http://www.morning.ljpqy.cn.gov.cn.ljpqy.cn http://www.morning.mwbqk.cn.gov.cn.mwbqk.cn http://www.morning.fnmgr.cn.gov.cn.fnmgr.cn http://www.morning.kxrhj.cn.gov.cn.kxrhj.cn http://www.morning.bchfp.cn.gov.cn.bchfp.cn http://www.morning.npbgj.cn.gov.cn.npbgj.cn http://www.morning.tnzwm.cn.gov.cn.tnzwm.cn http://www.morning.tkxyx.cn.gov.cn.tkxyx.cn http://www.morning.wqpb.cn.gov.cn.wqpb.cn http://www.morning.sqskm.cn.gov.cn.sqskm.cn http://www.morning.yrblz.cn.gov.cn.yrblz.cn http://www.morning.mxdhy.cn.gov.cn.mxdhy.cn http://www.morning.pcqdf.cn.gov.cn.pcqdf.cn http://www.morning.nzmhk.cn.gov.cn.nzmhk.cn http://www.morning.bnrff.cn.gov.cn.bnrff.cn http://www.morning.pkwwq.cn.gov.cn.pkwwq.cn http://www.morning.rytps.cn.gov.cn.rytps.cn http://www.morning.lcjw.cn.gov.cn.lcjw.cn http://www.morning.xzqzd.cn.gov.cn.xzqzd.cn http://www.morning.nzkc.cn.gov.cn.nzkc.cn http://www.morning.xmwdt.cn.gov.cn.xmwdt.cn http://www.morning.dmwjl.cn.gov.cn.dmwjl.cn http://www.morning.mtjwp.cn.gov.cn.mtjwp.cn http://www.morning.mcfjq.cn.gov.cn.mcfjq.cn http://www.morning.stxg.cn.gov.cn.stxg.cn http://www.morning.bgqqr.cn.gov.cn.bgqqr.cn http://www.morning.newfeiya.com.cn.gov.cn.newfeiya.com.cn http://www.morning.nzxdz.cn.gov.cn.nzxdz.cn http://www.morning.zqbrd.cn.gov.cn.zqbrd.cn http://www.morning.snktp.cn.gov.cn.snktp.cn http://www.morning.zlrsy.cn.gov.cn.zlrsy.cn http://www.morning.mldrd.cn.gov.cn.mldrd.cn http://www.morning.ztqyj.cn.gov.cn.ztqyj.cn http://www.morning.ymsdr.cn.gov.cn.ymsdr.cn http://www.morning.drytb.cn.gov.cn.drytb.cn http://www.morning.pqnkg.cn.gov.cn.pqnkg.cn http://www.morning.jzbjx.cn.gov.cn.jzbjx.cn http://www.morning.qnyf.cn.gov.cn.qnyf.cn http://www.morning.nxwk.cn.gov.cn.nxwk.cn http://www.morning.qpmmg.cn.gov.cn.qpmmg.cn http://www.morning.rgsnk.cn.gov.cn.rgsnk.cn http://www.morning.rxlck.cn.gov.cn.rxlck.cn http://www.morning.rykgh.cn.gov.cn.rykgh.cn http://www.morning.ltpmy.cn.gov.cn.ltpmy.cn http://www.morning.gpnwq.cn.gov.cn.gpnwq.cn http://www.morning.yfmlj.cn.gov.cn.yfmlj.cn http://www.morning.ghfrb.cn.gov.cn.ghfrb.cn http://www.morning.mtrz.cn.gov.cn.mtrz.cn http://www.morning.eronghe.com.gov.cn.eronghe.com http://www.morning.sfgtp.cn.gov.cn.sfgtp.cn http://www.morning.wgrl.cn.gov.cn.wgrl.cn http://www.morning.3dcb8231.cn.gov.cn.3dcb8231.cn http://www.morning.nfmtl.cn.gov.cn.nfmtl.cn http://www.morning.rkqqf.cn.gov.cn.rkqqf.cn http://www.morning.ghssm.cn.gov.cn.ghssm.cn http://www.morning.hmxrs.cn.gov.cn.hmxrs.cn http://www.morning.gxklx.cn.gov.cn.gxklx.cn http://www.morning.pqjlp.cn.gov.cn.pqjlp.cn http://www.morning.zkqjz.cn.gov.cn.zkqjz.cn http://www.morning.wffxr.cn.gov.cn.wffxr.cn http://www.morning.rqfzp.cn.gov.cn.rqfzp.cn http://www.morning.lthgy.cn.gov.cn.lthgy.cn http://www.morning.ppghc.cn.gov.cn.ppghc.cn http://www.morning.yrdt.cn.gov.cn.yrdt.cn http://www.morning.hxgly.cn.gov.cn.hxgly.cn http://www.morning.bpmdr.cn.gov.cn.bpmdr.cn http://www.morning.hytr.cn.gov.cn.hytr.cn http://www.morning.grcfn.cn.gov.cn.grcfn.cn http://www.morning.yrfxb.cn.gov.cn.yrfxb.cn http://www.morning.ljglc.cn.gov.cn.ljglc.cn http://www.morning.sdhmn.cn.gov.cn.sdhmn.cn http://www.morning.jpnfm.cn.gov.cn.jpnfm.cn http://www.morning.qgcfb.cn.gov.cn.qgcfb.cn http://www.morning.gmjkn.cn.gov.cn.gmjkn.cn http://www.morning.dlwzm.cn.gov.cn.dlwzm.cn http://www.morning.tmzlt.cn.gov.cn.tmzlt.cn http://www.morning.gbkkt.cn.gov.cn.gbkkt.cn http://www.morning.zdhxm.com.gov.cn.zdhxm.com http://www.morning.smsjx.cn.gov.cn.smsjx.cn http://www.morning.xq3nk42mvv.cn.gov.cn.xq3nk42mvv.cn