Найти два максимальных элемента последовательности и два минимальных - VB

Узнай цену своей работы

Формулировка задачи:

ни как несооброжу как код написать подскажите! например задачка дана последовательность целых чисел а1, а2....аН где Н >= 3 найти два максимальных элемента последовательности и два минимальных ! Спасибо буду благодарен !

Решение задачи: «Найти два максимальных элемента последовательности и два минимальных»

textual
Листинг программы
Option Explicit
 
Private Sub Command1_Click()
    Dim Arr, i As Integer, B
    Arr = Array(130, 10, 58, 61, 74, 523, 31, 42, 55, 44, 48, 88, 43, 12, 39, 22, 31, 99)
    
    B = Arr
    BubbleSort B
    
    Print B(0)
    Print B(1)
    Print "-----"
    Print B(UBound(B) - 1)
    Print B(UBound(B))
    
End Sub
 
 
Public Sub BubbleSort(List)
Dim last_swap As Long, min As Integer, max As Integer
Dim i As Long, j As Long, tmp As Long
    max = UBound(List): min = LBound(List)
    ' Repeat until we are done.
    Do While min < max
        ' Bubble up.
        last_swap = min - 1
        ' For i = min + 1 To max
        i = min + 1
        Do While i <= max
            ' Find a bubble.
            If List(i - 1) > List(i) Then
                ' See where to drop the bubble.
                tmp = List(i - 1)
                j = i
                Do
                    List(j - 1) = List(j)
                    j = j + 1
                    If j > max Then Exit Do
                Loop While List(j) < tmp
                List(j - 1) = tmp
                last_swap = j - 1
                i = j + 1
            Else
                i = i + 1
            End If
        Loop
        ' Update max.
        max = last_swap - 1
        
        ' Bubble down.
        last_swap = max + 1
        ' For i = max - 1 To min Step -1
        i = max - 1
        Do While i >= min
            ' Find a bubble.
            If List(i + 1) < List(i) Then
                ' See where to drop the bubble.
                tmp = List(i + 1)
                j = i
                Do
                    List(j + 1) = List(j)
                    j = j - 1
                    If j < min Then Exit Do
                Loop While List(j) > tmp
                List(j + 1) = tmp
                last_swap = j + 1
                i = j - 1
            Else
                i = i - 1
            End If
        Loop
        ' Update min.
        min = last_swap + 1
    Loop
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.214 из 5
Похожие ответы