冒泡排序,快速排序,归并排序
发布时间:2020-12-15 01:56:47 所属栏目:Java 来源:网络整理
导读:冒泡排序 #include iostream#include vectorusing namespace std;void mysort(vectorint da) { int n = da.size(); for (int i=0; in; ++i) { for (int j=0; jn-i-1; ++j) { if (da[j]da[j+1]) swap(da[j],da[j+1]); } }}int main(){ vectorint nums{9,8,7,4
冒泡排序#include <iostream> #include <vector> using namespace std; void mysort(vector<int>& da) { int n = da.size(); for (int i=0; i<n; ++i) { for (int j=0; j<n-i-1; ++j) { if (da[j]>da[j+1]) swap(da[j],da[j+1]); } } } int main() { vector<int> nums{9,8,7,4,5,6,2,1,3}; mysort(nums); for (int i:nums) cout<<i<<' '; cout<<endl; return 0; } 快速排序#include <iostream> #include <vector> using namespace std; void mysort(vector<int>& da,int s,int e) { if (s>=e) return ; int i=s,j=e,tmp=da[s]; while(i<j) { while (i<j && da[j]>=tmp) j--; while (i<j && da[i]<=tmp) i++; swap(da[i],da[j]); } swap(da[s],da[i]); mysort(da,s,i-1); mysort(da,i+1,e); } int main() { vector<int> nums{9,3}; mysort(nums,nums.size()-1); for (int i:nums) cout<<i<<' '; cout<<endl; return 0; } 归并排序#include <iostream> #include <vector> using namespace std; void mysort(vector<int>& da,int e) { if (s>=e) return ; int mid = s+((e-s)>>2); mysort(da,mid); mysort(da,mid+1,e); vector<int> tmp; int i=s,j=mid+1; while(i<=mid && j<=e) { if (da[i]<=da[j]) tmp.push_back(da[i++]); else tmp.push_back(da[j++]); } for(; i<=mid; ++i) tmp.push_back(da[i]); for(; j<=e; ++j) tmp.push_back(da[j]); for (int k=s; k<=e; ++k) da[k]=tmp[k-s]; } int main() { vector<int> nums{9,nums.size()-1); for (int i:nums) cout<<i<<' '; cout<<endl; return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |