今天是去实现了一下排序算法
先是交换排序
最简单的冒泡排序:
#include <stdio.h>
#include <vector>
#include <iostream>
using namespace std;
int main(){
int n;
vector<int> result;
while(cin>>n){
result.push_back(n);
}
int a=0;
for(int i=0;i<result.size();i++){
int flag=0;
for(int j=result.size()-1;j>i;j--){
if(result[j]<result[j-1]){
int tmp=result[j];
result[j]=result[j-1];
result[j-1]=tmp;
flag=1;
}
}
if(flag==0)
break;
}
for(int i=0;i<result.size();i++){
cout<<result[i]<<" ";
}
}
快速排序:
#include <stdio.h>
#include <vector>
#include <iostream>
using namespace std;
int pattern(vector<int> &a,int low,int high){
int tmp=a[low];
while(low<high){
for(;low<high&&a[high]>tmp;high--){
}
swap(a[low],a[high]);
for(;low<high&&a[low]<=tmp;low++){
}
swap(a[high],a[low]);
}
a[low]=tmp;
return low;
}
void quicksort(vector<int> &a,int low,int high){
if(low>=high) return;
int tmp=pattern(a,low,high);
quicksort(a,low,tmp-1);
quicksort(a,tmp+1,high);
}
int main(){
int n;
vector<int> result;
while(cin>>n){
result.push_back(n);
}
quicksort(result,0,result.size()-1);
for(int i=0;i<result.size();i++){
cout<<result[i]<<" ";
}
}