国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

算法 數(shù)據(jù)結構 遞歸插入排序 java插入排序 遞歸求解插入排序算法 如何用遞歸寫插入排序 插入排序動圖 插入排序優(yōu)化 數(shù)據(jù)結構(十)

這篇具有很好參考價值的文章主要介紹了算法 數(shù)據(jù)結構 遞歸插入排序 java插入排序 遞歸求解插入排序算法 如何用遞歸寫插入排序 插入排序動圖 插入排序優(yōu)化 數(shù)據(jù)結構(十)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. 插入排序(insertion-sort):

????????????????????????????????????????? 是一種簡單直觀的排序算法。它的工作原理是通過構建有序序列,對于未排序數(shù)據(jù),在已排序序列中從后向前掃描,找到相應位置并插入

??? 算法穩(wěn)定性:

??????????????????????? 對于兩個相同的數(shù),經(jīng)過排序后,他們依舊保持之前的順序,二者次序沒有發(fā)生變化。插入排序是算法穩(wěn)定的

?? 時間復雜度

??????? 最優(yōu)情況

????????????????????? 在插入排序中,當待排序數(shù)組是有序時,是最優(yōu)的情況,只需當前數(shù)跟前一個數(shù)比較一下就可以了,這時一共需要比較N- 1次,時間復雜度為O(n)

??????? 最壞情況

????????????????????????? 最壞的情況是待排序數(shù)組是逆序的,此時需要比較次數(shù)最多,總次數(shù)記為:1+2+3+…+N-1,所以,插入排序最壞情況下的時間復雜度為O()?

???? 動態(tài)圖

算法 數(shù)據(jù)結構 遞歸插入排序 java插入排序 遞歸求解插入排序算法 如何用遞歸寫插入排序 插入排序動圖 插入排序優(yōu)化 數(shù)據(jù)結構(十),數(shù)據(jù)結構與算法,算法,排序算法,數(shù)據(jù)結構

? 遞歸代碼:文章來源地址http://www.zghlxwxcb.cn/news/detail-697027.html

package com.nami.algorithm.study.day06;

import java.util.Arrays;

/**
 * beyond u self and trust u self.
 *
 * @Author: lbc
 * @Date: 2023-09-05 15:36
 * @email: 594599620@qq.com
 * @Description: keep coding
 */
public class InsertionSort {

    /**
     * 插入排序:
     * 從右向左找
     *
     * @param target
     */
    public static void sort(int[] target) {
        insertion(target, 1);
    }

    /**
     * 遞歸 縮小結果集
     *
     * @param target
     * @param lowIndex
     */
    private static void insertion(int[] target, int lowIndex) {
        if (lowIndex == target.length) {
            return;
        }

        int t = target[lowIndex];
        // 已排序區(qū)域指針
        int i = lowIndex - 1;
        // 沒有找到插入位置
        while (i >= 0 && target[i] > t) {
            target[i + 1] = target[i];
            i--;

            // 如果到達數(shù)組0時候 依舊沒有找到,則退出循環(huán)
            // 抽出,合并到while內
//            if(i < 0) {
//                break;
//            }
        }
        //插入位置找到了
        // 優(yōu)化減少不必要的賦值動作,
        // 需要替換的數(shù)組值,正好是大于i, i+1索引的值不需要動,這個賦值動作就不必要了
        if (i + 1 != lowIndex) {
            target[i + 1] = t;
        }
        insertion(target, lowIndex + 1);
    }

    /**
     * 兩種寫法,這種賦值次數(shù)更多
     * 時間復雜度相同
     * 但是 效率沒有上面的高,消耗在更多的賦值操作上了
     *
     * @param target
     * @param lowIndex
     */
    private static void insertion0(int[] target, int lowIndex) {
        if (lowIndex == target.length) {
            return;
        }

        // 已排序區(qū)域指針
        int i = lowIndex - 1;
        // 沒有找到插入位置
        while (i >= 0 && target[i] > target[i + 1]) {
            int temp = target[i];
            target[i] = target[i + 1];
            target[i + 1] = temp;
            i--;

        }
        insertion(target, lowIndex + 1);
    }

    public static void main(String[] args) {
        int[] test = new int[]{1, 54, 234, 675, 32432, 23, 78, 459, 354, 9, 344, 22, 46, 85, 236, 3278, 245, 83, 154, 2, 1, 34, 73, 23};
        int[] test2 = new int[]{2, 4, 7, 3, 2, 1};
//        sort(test, test.length);
        sort(test);
        System.out.println(Arrays.toString(test));
    }


}

到了這里,關于算法 數(shù)據(jù)結構 遞歸插入排序 java插入排序 遞歸求解插入排序算法 如何用遞歸寫插入排序 插入排序動圖 插入排序優(yōu)化 數(shù)據(jù)結構(十)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 數(shù)據(jù)結構與算法:插入排序&希爾排序

    數(shù)據(jù)結構與算法:插入排序&希爾排序

    假設現(xiàn)在你有一個有序的數(shù)組,你要把一個數(shù)據(jù)插入到數(shù)組中,保證插入后依然有序,要怎么做? 對于人來說,這個問題就像是在整理撲克牌,瞄一眼就知道應該插入什么位置。但是對于程序來說,就需要一一對比,直到找到一個位置 左邊比它大,右邊比它小 ,就算找到了

    2024年01月17日
    瀏覽(38)
  • 【數(shù)據(jù)結構】常見排序算法——常見排序介紹、插入排序、直接插入排序、希爾排序

    【數(shù)據(jù)結構】常見排序算法——常見排序介紹、插入排序、直接插入排序、希爾排序

    ??在計算機科學中,排序是將一組數(shù)據(jù)按照指定的順序排列的過程。排序算法由于執(zhí)行效率的不同可以分為多種不同的算法。 ??通常情況下,排序算法可以分為兩類,即 內部排序和外部排序 。內部排序是指數(shù)據(jù)全部加載到內存中進行排序,適用于數(shù)據(jù)量較小的情況,而

    2024年02月08日
    瀏覽(34)
  • 數(shù)據(jù)結構算法--2 冒泡排序,選擇排序,插入排序

    數(shù)據(jù)結構算法--2 冒泡排序,選擇排序,插入排序

    思想就是將相鄰元素兩兩比較,當一個元素大于右側相鄰元素時,交換他們的位置,小于右側元素時,位置不變,最終序列中的最大元素,像氣泡一樣,到了最右側。 這時冒泡排序第一輪結束,數(shù)列最右側元素9的位置可認為是一個有序區(qū),有序區(qū)目前有一個元素. 第二輪排序

    2024年02月13日
    瀏覽(91)
  • 【數(shù)據(jù)結構與算法】排序算法(選擇排序,冒泡排序,插入排序,希爾排序)

    基本概念這了就不浪費時間解釋了,這四種都是很簡單的排序方式,本專欄后續(xù)文章會出歸并排序,計數(shù)排序,快速排序,堆排序,桶排序等排序算法,今天這篇文章中給出選擇排序,冒泡排序,插入排序和希爾排序的實現(xiàn); 如果發(fā)現(xiàn)文章中有錯誤,還請大家指出來,我會非

    2024年02月15日
    瀏覽(97)
  • 【數(shù)據(jù)結構與算法】:插入排序與希爾排序

    【數(shù)據(jù)結構與算法】:插入排序與希爾排序

    ?? 個人主頁 : Quitecoder ?? 專欄 : 數(shù)據(jù)結構與算法 歡迎大家來到初階數(shù)據(jù)結構的最后一小節(jié):排序 排序是一種將一組對象按照某種特定順序重新排列的過程。在計算機科學中,排序是數(shù)據(jù)處理中非?;厩抑匾牟僮鳎梢詭椭藗兏行У乩斫夂头治鰯?shù)據(jù)。排序的順序

    2024年03月18日
    瀏覽(29)
  • 【數(shù)據(jù)結構與算法】插入排序和希爾排序

    【數(shù)據(jù)結構與算法】插入排序和希爾排序

    ? 目錄 一.插入排序? InsertSort 基本思想 動圖演示 ?特性總結 二.希爾排序? ShellSort 基本思想 圖例 特性總結 基本思想 把待排序的記錄按其關鍵碼值的大小逐個插入到一個已經(jīng)排好序的有序序列中,直到所有的記錄插入完為止,得到一個新的有序序列 。 當插入第i(i=1)個元素

    2023年04月18日
    瀏覽(24)
  • 【數(shù)據(jù)結構與算法】歸并排序詳解:歸并排序算法,歸并排序非遞歸實現(xiàn)

    【數(shù)據(jù)結構與算法】歸并排序詳解:歸并排序算法,歸并排序非遞歸實現(xiàn)

    歸并排序是一種經(jīng)典的排序算法,它使用了分治法的思想。下面是歸并排序的算法思想: 遞歸地將數(shù)組劃分成較小的子數(shù)組,直到每個子數(shù)組的長度為1或者0。 將相鄰的子數(shù)組合并,形成更大的已排序的數(shù)組,直到最終得到一個完全排序的數(shù)組。 歸并排序的過程可以分為三

    2024年01月22日
    瀏覽(32)
  • 【數(shù)據(jù)結構與算法】:非遞歸實現(xiàn)快速排序、歸并排序

    【數(shù)據(jù)結構與算法】:非遞歸實現(xiàn)快速排序、歸并排序

    ?? 個人主頁 : Quitecoder ?? 專欄 :數(shù)據(jù)結構與算法 上篇文章我們詳細講解了遞歸版本的快速排序,本篇我們來探究非遞歸實現(xiàn)快速排序和歸并排序 快速排序的非遞歸實現(xiàn)主要依賴于棧(stack)來模擬遞歸過程中的函數(shù)調用棧。遞歸版本的快速排序通過遞歸調用自身來處理子

    2024年03月24日
    瀏覽(25)
  • 【數(shù)據(jù)結構與算法】直接插入排序和希爾排序

    【數(shù)據(jù)結構與算法】直接插入排序和希爾排序

    進入了初階數(shù)據(jù)結構的一個新的主題——排序。所謂排序,就是一串記錄, 按照其中的某幾個或某些的大?。ㄒ欢ǖ囊?guī)則) , 遞增或遞減排列起來的操作 。 排序的 穩(wěn)定性 :在一定的規(guī)則下,兩個值相等的元素,在排序算法處理前后的相對位置是否發(fā)生變化,如果相

    2024年04月13日
    瀏覽(61)
  • 【數(shù)據(jù)結構】排序算法(一)—>插入排序、希爾排序、選擇排序、堆排序

    【數(shù)據(jù)結構】排序算法(一)—>插入排序、希爾排序、選擇排序、堆排序

    ?? 樊梓慕: 個人主頁 ? ?? 個人專欄: 《C語言》《數(shù)據(jù)結構》《藍橋杯試題》《LeetCode刷題筆記》《實訓項目》 ?? 每一個不曾起舞的日子,都是對生命的辜負 目錄 前言 1.直接插入排序 2.希爾排序 3.直接選擇排序 4.堆排序 本篇文章博主將介紹排序算法中的插入排序:直接

    2024年02月08日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包