• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

GONCALOPES

[vb.net] Ordenar um array

9 mensagens neste tópico

tenho um array com os seguintes numeros por esta ordem 2,14,7,20,18 e tenho que ordenar.

preciso disto para entregar amanha, alguem tem uma soluçao possivel help me please...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

penso que seja assim alguem que me faça um favor que vejam se isto funciona correctamente no visual studio, e que nao tou em casa, e o pc onde tou nao tem o visual studio.

Dim a As Integer
Dim t As Integer
Dim i As Integer
Dim troca As Boolean
Do
troca = False
For i = 1 To n - 1
If x(i) < x(i + 1) Then
troca = False
Else
troca = True
t = x(i + 1)
x(i + 1) = x(i)
x(i) = t
x(i) = t
End If
Next
Loop Until troca = False
End Sub
Sub Main()
Dim n As Integer
n = 5
Dim x(5) As String
x(1) = 2
x(2) = 14
x(3) = 7
x(4) = 20
x(5) = 18
Dim i As integer
Console.WriteLine("Lista antes de ordenar:")
For i = 1 To n
Console.WriteLine(x(i))
Next
ordena(n, x)
Console.WriteLine("Lista após ordenar:")
For i = 1 To n
Console.WriteLine(x(i))
Next
Console.ReadLine()
End Sub
End Module

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tas a começar a  aprender e ja queres começar pela pior parte ,,,que te deem ja feito..assim nao aprendes

1-percorre vetor e retira menor elemento   

2- coloca em outro vetor ,na 1 posicao vazia   

3- repete até que não haja elementos no vetor entrada   

4- retorna o outro vetor 

nao sei quall e a tua linguagem de proj mas isto aplica-se a qq uma

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

a linguagem e visualbasic.net eu quero aprender mas so que preciso levar isto feito para amanhã, eu demoro algum tempo a entrar no ritmo da programação, mas o código tá certo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas... estive a ver apenas a parte onde ordenas os números:

Do
    troca = False
    For i = 1 To n - 1
        If x(i) < x(i + 1) Then
            troca = False
        Else
            troca = True
            t = x(i + 1)
            x(i + 1) = x(i)
            x(i) = t
            x(i) = t
        End If
    Next
Loop Until troca = False

*repetes 2 vezes -> x(i) = t

*penso que não precisas do ciclo "Do Until", para esse alguritmo basta os 2 ciclos For

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
       Dim a(4) As Int32

        a(0) = 2
        a(1) = 14
        a(2) = 7
        a(3) = 20
        a(4) = 18

        a.Sort(a)
        For i As Int32 = 0 To a.Length - 1
            MessageBox.Show(a(i).ToString)
        Next

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei qual o algorithmo que .Sort usa mas deve ser o QuiclSort.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora