⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a610quik.cpp

📁 quarto esempi vari per c++ (schemi base)
💻 CPP
字号:
// nuovi concetti: algoritmo "quick sort"
#include <iostream>

using namespace std;

int X[] = {54,6,26,73,1,69,36,70,14,76,81,85,99,8,16,38,45};
int n = sizeof(X)/sizeof(int);

void mostra_sequenza(char intestazione[])
{
  cout << "\n" << intestazione;
  for (int i = 0; i < n; i++)
    cout << " " << X[i];
  cout << "\n";
}

void quick_sort(int primo, int ultimo)
{
  int temp;          // variabile temporanea per lo scambio
  if (primo < ultimo)
  {
    //prendiamo come pivot il primo elemento della sequenza
    int pivot = X[primo];
    int i = primo;
    int j = ultimo;
    while (i < j)
    {
      // cerca, partendo da sinistra, il primo elemento > pivot
      while (i < ultimo && X[i] <= pivot)
	i++;
      // cerca, partendo da destra, il primo elemento < pivot
      while (j > primo && X[j] >= pivot)
	j--;
      if (i < j) //scambio(X[i],X[j])
      {
	temp = X[i];
	X[i] = X[j];
	X[j] = temp;
      }

    }
    //scambio(X[j],X[primo])
    temp = X[primo];
    X[primo] = X[j];
    X[j] = temp;

    //applico ricorsivamente quick sort alle due parti
    quick_sort(primo, j-1);
    quick_sort(j+1, ultimo);
  }
}

int main(void) {
  mostra_sequenza("Sequenza da ordinare:\n");
  quick_sort(0,n-1);
  mostra_sequenza("Sequenza ordinata con 'quick sort':\n");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -