今天计划整理一下常见的几种排序算法
冒泡法:
第p次冒泡,会在剩下的n-p个数字钟找到最小的min值,将其放在剩下的n-p个数字的最前面。
我的方法是找剩下中的最小值放到开头,而不是两个相邻值互相交换
代码如下:
template<typename comparable>void maopaosort(vector<comparable>& a){ comparab tmp; int pos; for(int i=0;i<a.size()-1;i++) { tmp=a[i]; pos=i; for(int j=i+1;j<a.szie();j++) { if(a[j]<tmp) { tmp=a[j]; pos=j; } } a[i]=a[pos]; a[pos]=tmp; }}标准的冒泡算法如下:
void bubble_sort(int a[], int n){ int i, j, temp; for (j = 0; j < n - 1; j++) for (i = 0; i < n - 1 - j; i++) { if(a[i] > a[i + 1]) { temp = a[i]; a[i] = a[i + 1]; a[i + 1] = temp; } }}
新闻热点
疑难解答