<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.algopedia.ro/wiki/index.php?action=history&amp;feed=atom&amp;title=10_2018_Lectia23</id>
	<title>10 2018 Lectia23 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.algopedia.ro/wiki/index.php?action=history&amp;feed=atom&amp;title=10_2018_Lectia23"/>
	<link rel="alternate" type="text/html" href="https://www.algopedia.ro/wiki/index.php?title=10_2018_Lectia23&amp;action=history"/>
	<updated>2026-04-13T17:48:00Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.algopedia.ro/wiki/index.php?title=10_2018_Lectia23&amp;diff=16090&amp;oldid=prev</id>
		<title>Bella: Created page with &quot;= Tema Rezolvari = = Lectie = == [https://www.pbinfo.ro/?pagina=probleme&amp;id=1024 Quicksort] ==  === Varianta 1 de implementare ===   &lt;syntaxhighlight&gt; #include &lt;iostream&gt; usin...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.algopedia.ro/wiki/index.php?title=10_2018_Lectia23&amp;diff=16090&amp;oldid=prev"/>
		<updated>2019-03-27T13:21:10Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;= Tema Rezolvari = = Lectie = == [https://www.pbinfo.ro/?pagina=probleme&amp;amp;id=1024 Quicksort] ==  === Varianta 1 de implementare ===   &amp;lt;syntaxhighlight&amp;gt; #include &amp;lt;iostream&amp;gt; usin...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Tema Rezolvari =&lt;br /&gt;
= Lectie =&lt;br /&gt;
== [https://www.pbinfo.ro/?pagina=probleme&amp;amp;id=1024 Quicksort] ==&lt;br /&gt;
&lt;br /&gt;
=== Varianta 1 de implementare ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int a[100000], n, i;&lt;br /&gt;
void quickSort(int a[], int p, int u) {&lt;br /&gt;
  int i = p, j = u;&lt;br /&gt;
  int aux;&lt;br /&gt;
  int pivot = a[( p + u ) / 2];&lt;br /&gt;
  while ( i &amp;lt;= j ) {&lt;br /&gt;
    while ( a[i] &amp;lt; pivot )        // inaintez cu i pana gasesc un element mai mare sau egal cu pivotul&lt;br /&gt;
      i ++;&lt;br /&gt;
    while ( a[j] &amp;gt; pivot )        // inaintez cu j pana gasesc un element mai mare sau egal cu pivotul&lt;br /&gt;
      j --;&lt;br /&gt;
    if ( i &amp;lt;= j ){                // daca elem de pe poz i se afla in stanga celui de pe poz j,&lt;br /&gt;
      aux = a[i];                 // interchimb cele doua valori&lt;br /&gt;
      a[i] = a[j];&lt;br /&gt;
      a[j] = aux;&lt;br /&gt;
      i++;                        // mut cei doi pointeri cu o pozitie&lt;br /&gt;
      j--;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  // de la p la j au elemente mai mici decat pivotul&lt;br /&gt;
  // de la i la u am elemente mai mari decat pivotul&lt;br /&gt;
  if ( p &amp;lt; j )&lt;br /&gt;
    quickSort( a, p, j );         // sortez [p,j] daca am mai mult de un element&lt;br /&gt;
  if ( i &amp;lt; u )&lt;br /&gt;
    quickSort( a, i, u );         // sortez [i,u] daca am mai mult de un element&lt;br /&gt;
}&lt;br /&gt;
 int main() {&lt;br /&gt;
  int n, i;&lt;br /&gt;
  cin &amp;gt;&amp;gt; n;&lt;br /&gt;
  for( i = 1; i &amp;lt;= n; i++ )&lt;br /&gt;
    cin &amp;gt;&amp;gt; a[i];&lt;br /&gt;
  quickSort( a, 1, n );&lt;br /&gt;
  for( i = 1; i &amp;lt;= n; i++ )&lt;br /&gt;
    cout&amp;lt;&amp;lt; a[i] &amp;lt;&amp;lt;&amp;quot; &amp;quot;;&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Varianta 2 de implementare ===&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#include &amp;lt;bits/stdc++.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int a[100001];&lt;br /&gt;
&lt;br /&gt;
int Partition( int a[], int l, int r ){&lt;br /&gt;
  int x = a[l];&lt;br /&gt;
  int j=l;&lt;br /&gt;
  for(int i = l + 1; i &amp;lt;= r; i++ ){&lt;br /&gt;
    if(a[i] &amp;lt;=x ){&lt;br /&gt;
      j ++;&lt;br /&gt;
      swap( a[j], a[i] );&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  swap(a[l], a[j]);&lt;br /&gt;
  return j;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void QuickSort( int a[], int l, int r ){&lt;br /&gt;
    if( l &amp;gt;= r ){&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    int m = Partition( a, l, r );      &lt;br /&gt;
    QuickSort( a, l, m-1 );&lt;br /&gt;
    QuickSort( a, m + 1, r );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
  int l, r, n;&lt;br /&gt;
    &lt;br /&gt;
  cin &amp;gt;&amp;gt; n;&lt;br /&gt;
  for(int i = 1; i &amp;lt;= n; i++ )&lt;br /&gt;
    cin &amp;gt;&amp;gt; a[i];&lt;br /&gt;
    &lt;br /&gt;
  l = 1;&lt;br /&gt;
  r = n;&lt;br /&gt;
  QuickSort( a, l, r );&lt;br /&gt;
  for(int i = 1; i &amp;lt;= n; i++ )&lt;br /&gt;
    cout &amp;lt;&amp;lt; a[i] &amp;lt;&amp;lt;&amp;quot; &amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TEMA = &lt;br /&gt;
usor&lt;br /&gt;
* https://www.pbinfo.ro/?pagina=probleme&amp;amp;id=1024 Quicksort&lt;br /&gt;
* https://www.pbinfo.ro/?pagina=probleme&amp;amp;id=1264 Statisticiordine&lt;br /&gt;
* https://www.pbinfo.ro/?pagina=probleme&amp;amp;id=1156 InaltimiQ&lt;br /&gt;
* https://www.pbinfo.ro/?pagina=probleme&amp;amp;id=1157 KSort2&lt;br /&gt;
&lt;br /&gt;
medie&lt;br /&gt;
* https://www.pbinfo.ro/?pagina=probleme&amp;amp;id=2525 Cioc&lt;br /&gt;
&lt;br /&gt;
== Tema rezolvari ==&lt;/div&gt;</summary>
		<author><name>Bella</name></author>
	</entry>
</feed>