首頁 > Java > java教程 > Java程序以降序對堆棧的元素進行排序

Java程序以降序對堆棧的元素進行排序

Barbara Streisand
發布: 2025-02-07 11:22:38
原創
572 人瀏覽過

Java program to sort the elements of the stack in descending order

>本文演示瞭如何使用Java以降序排序堆棧的元素。 遵循最後一項(LIFO)原理的堆棧是基本數據結構。 想想瀏覽器的歷史;最近訪問的網站首先訪問。 我們將探索針對此分類任務的遞歸Java解決方案。

>

問題:

給出了一個未分佈的整數堆棧,以降序排列其元素(頂部最大的元素)。

>輸入示例:

<code>Original Stack: [4, 2, 9, 7]</code>
登入後複製
>

>輸出示例:

<code>Sorted Stack in Descending Order: [9, 7, 4, 2]</code>
登入後複製

遞歸java解決方案: 我們的方法採用遞歸來有效地對堆棧進行分類。該過程涉及以下步驟:

  1. >方法:此遞歸方法迭代地從輸入堆棧中刪除元素,直到其為空為止。 每個刪除的元素都暫時存儲,方法遞歸地在其餘的堆棧上自動調用。 sortStack(Stack<integer> stack)</integer> sortStack

  2. 助手方法:

    此方法處理暫時刪除元素的插入堆棧中的插入,以保持降序。 它檢查堆棧是空的還是要插入的元素大於當前頂部元素。如果任何一個條件都是正確的,則將元素推到堆棧上。否則,暫時刪除了頂部元素,被遞歸地稱為,然後將暫時刪除的元素推回。 sortedInsert(Stack<integer> stack, int element)</integer> sortedInsert>

    主要方法:
  3. 方法創建示例堆棧,調用

    對其進行排序,然後打印出排序的堆棧。 > main這是完整的Java代碼:sortStack

輸出:

<code class="language-java">import java.util.Stack;

public class StackSorter {

    public static void sortStack(Stack<integer> stack) {
        if (!stack.isEmpty()) {
            int top = stack.pop();
            sortStack(stack);
            sortedInsert(stack, top);
        }
    }

    public static void sortedInsert(Stack<integer> stack, int element) {
        if (stack.isEmpty() || element > stack.peek()) {
            stack.push(element);
            return;
        }
        int temp = stack.pop();
        sortedInsert(stack, element);
        stack.push(temp);
    }

    public static void main(String[] args) {
        Stack<integer> stack = new Stack<>();
        stack.push(4);
        stack.push(2);
        stack.push(9);
        stack.push(7);

        System.out.println("Original Stack: " + stack);
        sortStack(stack);
        System.out.println("Sorted Stack in Descending Order: " + stack);
    }
}</integer></integer></integer></code>
登入後複製

時間和空間複雜性:>

<code>Original Stack: [4, 2, 9, 7]
Sorted Stack in Descending Order: [9, 7, 4, 2]</code>
登入後複製

時間複雜性: o(n2),其中n是堆棧中的元素數。這是由於遞歸呼叫的嵌套性質。

由於遞歸呼叫堆棧,
  • 空間複雜性: o(n)。 這種遞歸方法提供了一種清晰簡潔的解決方案,用於在Java中按降序排序堆棧。 助手功能的使用改善了代碼可讀性和組織。

以上是Java程序以降序對堆棧的元素進行排序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
java可以做為web的後端嗎?
來自於 1970-01-01 08:00:00
0
0
0
安裝JAVA
來自於 1970-01-01 08:00:00
0
0
0
無法安裝java
來自於 1970-01-01 08:00:00
0
0
0
求救:JAVA加密的資料PHP解密
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板