NYOJ4 之ASCII码排序和c++快速排序

来源:互联网 发布:java项目怎么打war包 编辑:程序博客网 时间:2024/06/06 07:44
#include <iostream>#include <vector>#include <string.h>using namespace std;/** c++版本 快速排序 */  void quickSort(char strDate[], int left, int right) {  char middle, tempDate;  int i, j;  i = left;  j = right;  middle = strDate[(i + j) / 2];  do {  while (strDate[i]<middle && i < right)  i++; // 找出左边比中间值大的数  while (strDate[j]>middle && j > left)  j--; // 找出右边比中间值小的数  if (i <= j) { // 将左边大的数和右边小的数进行替换  tempDate = strDate[i];  strDate[i] = strDate[j];  strDate[j] = tempDate;  i++;  j--;  }  } while (i <= j); // 当两者交错时停止  if (i < right) {  quickSort(strDate, i, right);// 从  }  if (j > left) {  quickSort(strDate, left, j);  }  }  int main(int argc, char* argv[] ){int a;char str[1024];cin>>a;while (a--) {cin>>str;int len=strlen(str);quickSort(str,0,len-1);unsigned int i=0;for (;i<len;i++){cout<<str[i]<<" ";}cout<<endl;}return 0;}

http://acm.nyist.net/JudgeOnline/problem.php?pid=4
0 0
原创粉丝点击