C/Visual C - Quicksort c++

 
Vista:
sin imagen de perfil

Quicksort c++

Publicado por oweer (2 intervenciones) el 28/10/2014 05:54:09
Hola gente, tengo un codigo en el que ocupo ayuda. Estoy trabajando en el codigo quicksort a la ves es Bidimensional o mejor dicho, matriz.
quiero que me ordene las filas, pero me hace mal el ordenamiento

aqui les dejo el codigo, este muy contento ante cualquier ayuda


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <iostream>
#include<time.h>
#include<stdlib.h>
#define f 5
#define c 5
using namespace std;
void relleno(int r[][c]);
void impresion(int im[][c]);
//funciones quicsort
void quicsort(int lista[][c],int n);
void qs(int lista[][c],int limite_izq,int limite_der);
 
int main(int argc, char *argv[]) {
	int tabla[f][c]={{0},{0}};
	relleno(tabla);
	impresion(tabla);
	quicsort(tabla,f);//llamado a quicsort
	cout<<"\n\n";
	impresion(tabla);
	//return 0;
}
 
//FUNCIONES//
 
void quicsort(int lista[][c],int n)
{
	qs(lista,0,n-1);
 
}
 
void qs(int lista[][c],int limite_izq,int limite_der)
{
	int izq,der,temporal,pivote[f]={0};
	 for (int i=0;i<f;i++)
	{
		//asignacion de las variables en cada ciclo
		der=limite_der; //1
		izq=limite_izq;
		//////////////////////////////////
		pivote[i]=lista[i][(izq+der)/2];
		do{
			while(lista[i][izq]<pivote[i] && izq<limite_der)
				izq++;
			while(pivote[i]<lista[i][der] && der>limite_izq)
				der--;
			if (izq<=der)
			{
				temporal=lista[i][izq];
				lista[i][izq]=lista[i][der];
				lista[i][der]=temporal;
				izq++;
				der--;
			}
		}while(izq<=der);
 
	}
 
 
}
 
//IMPRESION Y RELLENOS
void relleno(int r[][c])
{
	srand ((unsigned) time(NULL));
	for(int i=0;i<f;i++)
	{
		for (int j=0;j<=c;j++)
			r[i][j]=rand()%c;
	}
}
 
void impresion(int im[][c])
{
	for(int i=0;i<f;i++)
	{
		for (int j=0;j<=c;j++)
			cout<<im[i][j]<<" ";
		cout<<endl;
	}
	return;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder