用了快排还是40(后面三个测试点没过),新手求教!!!
查看原帖
用了快排还是40(后面三个测试点没过),新手求教!!!
1010327
MaNongMiss楼主2023/11/10 18:27

void quick_sort(int l, int r)

{

	if(l > r)
		return;
    
	int i = l, j = r, x = a[l];
	int temp;
	while(i < j)
  {

      while(a[j] >= x && i < j)
          j--; 
      while(a[i] <= x && i < j)
          i++;

      if(i != j)
      {
          temp = a[i];
          a[i] = a[j];
          a[j] = temp;
      } 
  }

  a[l] = a[i];
  a[i] = x;
  quick_sort(l, i - 1); 
  quick_sort(i + 1, r);

}

int main()

{

  int N;

  cin >> N;
  for(int i = 0; i < N; i++)
      cin >> a[i];

  quick_sort(0, N - 1);

  for(int i = 0; i < N; i++)
      cout << a[i] << " ";

  return 0;

}

2023/11/10 18:27
加载中...