#include

using namespace std;

// 快速排序函数 void quicksort(int a[], int left, int right) { if (left >= right) return; //递归终止条件 int i = left, j = right, pivot = a[left]; while (i < j) { while (i < j && a[j] <= pivot) j--; //从右向左找第一个大于 pivot 的数 if (i < j) a[i++] = a[j]; //将该数移到前面 while (i < j && a[i] > pivot) i++; //从左向右找第一个小于等于 pivot 的数 if (i < j) a[j--] = a[i]; //将该数移到后面 } a[i] = pivot; //将 pivot 放到它的正确位置 quicksort(a, left, i - 1); //递归处理左边的子数组 quicksort(a, i + 1, right); //递归处理右边的子数组 }

int main() { //变量声明 int a[10];

//输入10整数
cout << '输入10个整数:'<<endl;
for(int i=0;i<10;i++)
{
    cin>>a[i];
}

//输出数组,数据间用 \t 分隔
cout << '排序前数组:\n' ;
for(int i=0;i<10;i++)
    cout <<a[i] <<'\t';
cout << endl;	 

//数组排序
quicksort(a, 0, 9);

//输出数组,数据间用 \t 分隔 
cout << '排序后数组:\n' ;
for (int i = 0; i < 10; i++) 
    cout << a[i] << '\t';
cout << endl;

return 0;

}

C++ 数组排序优化 - 解决程序运行超时问题

原文地址: https://www.cveoy.top/t/topic/lHT5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录