C++ 数组排序优化 - 解决程序运行超时问题
#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;
}
原文地址: https://www.cveoy.top/t/topic/lHT5 著作权归作者所有。请勿转载和采集!