java選擇排序跟冒泡排序代碼,java選擇排序和冒泡排序

本文目錄一覽:

用java編寫冒泡排序和選擇排序 代碼???

public class TestBaiduKnow {

public static void main(String[] args) {

int[] a = { 3, 5, 6, 1, 2, 8, 9 };

// 冒泡 排序後結果從小到大

for (int i = 0; i  a.length; i++)

for (int j = i; j  a.length; j++) {

if (a[i]  a[j]) {

a[i] = a[i] + a[j];

a[j] = a[i] – a[j];

a[i] = a[i] – a[j];

}

}

print(a);

// 選擇排序 結果從大到小

int pos = -1;

for (int i = 0; i  a.length; i++) {

int max = a[i];

for (int j = i + 1; j  a.length; j++) {

if (max  a[j]) {

pos = j;

max = a[j];

}

}

if (pos != -1) {

a[i] = a[i] + a[pos];

a[pos] = a[i] – a[pos];

a[i] = a[i] – a[pos];

pos = -1;

}

}

print(a);

}

private static void print(int[] a) {

for (int i = 0; i  a.length; i++)

System.out.print(a[i] + “\t”);

System.out.println();

}

}

輸入一組數組 如何用Java按冒泡排序和選擇排序輸出數組 求代碼

/**

 * 2015年5月28日下午9:52:57

 * 

 * @author season TODO 測試已通過,獲取財富值

 *

 */

public class ArrayOperation {

    /**

     * 對數組 arr 進行冒泡排序升序排序

     * 

     * @param arr

     *            目標數組

     */

    public static void bubbleToUp(int[] arr) {

        if (null == arr)// 數組為空時,退出該方法

            return;

        for (int i = 0; i  arr.length – 1; i++) {

            for (int j = 0; j  arr.length – i – 1; j++) {

                if (arr[j]  arr[j + 1]) {

                    int temp = arr[j];

                    arr[j] = arr[j + 1];

                    arr[j + 1] = temp;

                }

            }

        }

    }

    /**

     * 使用選擇排序法對目標數組進行降序排序

     * 

     * @param arr

     *            目標數組

     */

    public static void selectToDown(int[] arr) {

        for (int i = 0; arr != null  i  arr.length; i++) {

            int flag = i;

            for (int j = i + 1; j  arr.length; j++) {

                if (arr[j]  arr[flag])

                    flag = j;

            }

            if (flag != i) {

                int temp = arr[i];

                arr[i] = arr[flag];

                arr[flag] = temp;

            }

        }

    }

    /**

     * 遍曆數組所有元素

     * 

     * @param arr

     *            目標數組

     */

    public static void displayArray(int[] arr) {

        System.out.println();

        for (int num : arr)

            System.out.print(”  ” + num);

    }

    public static void main(String[] args) {

        // 初始化數組

        int[] arr = { 20, -878, 90, 78, 89, -908 };

        // 首先進行冒泡排序(升序)

        bubbleToUp(arr);

        displayArray(arr);

        // 然後進行選擇排序(降序)

        selectToDown(arr);

        displayArray(arr);

    }

}

java冒泡排序法代碼

冒泡排序是比較經典的排序演算法。代碼如下:

for(int i=1;iarr.length;i++){

for(int j=1;jarr.length-i;j++){

//交換位置

}    

拓展資料:

原理:比較兩個相鄰的元素,將值大的元素交換至右端。

思路:依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟:首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重複第一趟步驟,直至全部排序完成。

第一趟比較完成後,最後一個數一定是數組中最大的一個數,所以第二趟比較的時候最後一個數不參與比較;

第二趟比較完成後,倒數第二個數也一定是數組中第二大的數,所以第三趟比較的時候最後兩個數不參與比較;

依次類推,每一趟比較次數-1;

??

舉例說明:要排序數組:int[] arr={6,3,8,2,9,1}; 

for(int i=1;iarr.length;i++){

for(int j=1;jarr.length-i;j++){

//交換位置

}    

參考資料:冒泡排序原理

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/241983.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:45
下一篇 2024-12-12 12:45

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29

發表回復

登錄後才能評論