#include<iostream> using namespace std; //冒泡排序 void bubbleSort(int arr[], int n) { for(int i = 0;i < n;i++){ //比较两个相邻的元素 for(int j = 0;j < n-i-1;j++){ if(arr[j] > arr[j+1]){ int t = arr[j]; arr[j] = arr[j+1]; arr[j+1] = t; } } } } //选择排序 void choiceSort(int arr[], int n){ for(int i = 0;i < n; i++){ int m = i; for(int j = i + 1;j < n;j++){ //如果第j个元素比第m个元素小,将j赋值给m if(arr[j] < arr[m]){ m = j; } } //交换m和i两个元素的位置 if(i != m){ int t = arr[i]; arr[i] = arr[m]; arr[m] = t; } } } //插入排序 void insertSort(int arr[], int n){ for(int i = 1;i < n;i++){ int temp = arr[i]; int j = i - 1; while(temp < arr[j]){ arr[j+1] = arr[j]; j--; if(j == -1){ break; } } arr[j+1] = temp; } } //快速排序 void quickSort(int *arr,int l,int r) { //此处编写代码实现快速排序 int i,j,x,temp; if(l<r) { i=l; j=r; x=arr[(l+r)/2]; //以中间元素为轴 while(1) { while(i<=r&&arr[i]<x) i++; while(j>=0&&arr[j]>x) j--; if(i>=j) //相遇则跳出 break; else { temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; //交换 } } quickSort(arr,l,i-1); //对左半部分进行快排 quickSort(arr,j+1,r); //对右半部分进行快排 } } int main() { int i; int a[] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 10}; //bubbleSort(a,10); //choiceSort(a,10); //insertSort(a,10); quickSort(a, 0, 9); for(i=0;i<=9;i++) { cout<<a[i]<<' '; } return 0; }