快速排序
#include<iostream> using namespace std; void swap(int *a,int *b) { int temp=*a; *a=*b; *b=temp; } int partition2(int data[],int low,int high) { int i=low; int j=high; int privot = data[low]; while(i<j) { while(data[j]>=privot && i<j) j--; swap(&data[i],&data[j]); //data[i]=data[j]; while(data[i]<=privot &&i<j) i++; swap(&data[i],&data[j]); //data[j]=data[i]; } //data[i]=privot; return i; } void quick_sort(int data[],int low,int high) { if(low<high) { int k=partition2(data,low,high); quick_sort(data,low,k-1); quick_sort(data,k+1,high); } } int main() {//int data[]={4,5,2,3,1}; int data[]={5,4,3,2,1}; cout<<"排序前:"<<endl; int index; for(index=0;index<5;index++) cout<<data[index]; cout<<endl; quick_sort(data,0,4); cout<<"排序后:"<<endl; for(index=0;index<5;index++) cout<<data[index]; }