国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

百度地圖導航下載安裝站長工具seo綜合查詢可以訪問

百度地圖導航下載安裝,站長工具seo綜合查詢可以訪問,荔灣區(qū)網(wǎng)站建設,短視頻平臺推廣方案排序算法 文章目錄 冒泡排序算法步驟動圖代碼優(yōu)化總結(jié) 選擇排序算法步驟動圖代碼總結(jié) 插入排序算法步驟動圖代碼總結(jié) 排序算法,就是使一串記錄,按照其中的某個或某些關(guān)鍵字的大小,遞增或遞減的排列起來的操作。一般默認排序是按照由小到大即…

排序算法

文章目錄

  • 冒泡排序
    • 算法步驟
    • 動圖
    • 代碼
    • 優(yōu)化
    • 總結(jié)
  • 選擇排序
    • 算法步驟
    • 動圖
    • 代碼
    • 總結(jié)
  • 插入排序
    • 算法步驟
    • 動圖
    • 代碼
    • 總結(jié)

排序算法,就是使一串記錄,按照其中的某個或某些關(guān)鍵字的大小,遞增或遞減的排列起來的操作。一般默認排序是按照由小到大即升序排列。

冒泡排序

冒泡排序(Bubble Sort)簡單的基于比較的排序算法。每次比較相鄰兩個元素,如果他們的順序錯誤就把他們交換過來。由于較大的數(shù)據(jù)會不斷地向上”冒“,所以以冒泡排序命名。

算法步驟

  • 從頭開始,比較相鄰元素,如果順序不對,就交換。
  • 每次選出一個局部最大值
  • 走過n - 1 趟后,數(shù)組就有序了

動圖

請?zhí)砑訄D片描述

代碼

public class P02_BubbleSort {public static void bubbleSort(int[] arr) {if(arr == null || arr.length < 2) {return;}for(int i = 0;i < arr.length - 1;i++) {for(int j = 0;j < arr.length - 1 - i;j++) {if(arr[j] > arr[j + 1]) {swap(arr,j,j + 1);}}}}public static void swap(int[] arr,int i,int j) {int t = arr[i];arr[i] = arr[j];arr[j] = t;}public static void main(String[] args) {int[] arr = {9,8,7,6,5,4,3,2,1};bubbleSort(arr);System.out.println(Arrays.toString(arr));}
}

優(yōu)化

 public static void bubbleSort(int[] arr) {if(arr == null || arr.length < 2) {return;}for(int i = 0;i < arr.length - 1;i++) {boolean success = false; for(int j = 0;j < arr.length - 1 - i;j++) {if(arr[j] > arr[j + 1]) {swap(arr,j,j + 1);success = true;}}if(success == false) {break;// 已經(jīng)有序}}
}

總結(jié)

冒泡排序的時間復雜度 O ( N ) O(N) O(N),空間復雜度 O ( 1 ) O(1) O(1),冒泡排序是一種性能比較差的排序,如果不優(yōu)化,那么無論是何種數(shù)據(jù)狀況,都要經(jīng)理 N 2 N^2 N2次比較。冒泡排序大量浪費比較行為,每趟比較只會選擇出一個最大值,所以性能較差。

選擇排序

選擇排序是一種簡單直觀的基于比較的排序算法,性能不受數(shù)據(jù)狀況的左右,就算是已經(jīng)有序的數(shù)據(jù),也是 O ( N 2 ) O(N^2) O(N2)的時間復雜度。

算法步驟

在這里插入圖片描述
(不用交換的沒有畫出)

  • 0 ~ n - 1 范圍 找到最小值 交換到 0 位置
  • 1 ~ n - 1 范圍 找到最小值 交換到 1 位置
  • 2 ~ n - 1 范圍 找到最小值 交換到 2 位置
  • … …
  • n - 2 ~ n - 1 范圍找到較小值 交換到 n - 2 位置
  • 排序完成

動圖

請?zhí)砑訄D片描述

代碼

package package01;import java.util.Arrays;public class P01_SelectSort {public static void selectSort(int[] arr) {if (arr == null || arr.length < 2) {return;}for (int i = 0; i < arr.length; i++) {int minIndex = i;for (int j = i + 1; j < arr.length; j++) {minIndex = arr[minIndex] < arr[j] ? minIndex : j;}swap(arr, minIndex, i);}}public static void swap(int[] arr, int i, int j) {int t = arr[i];arr[i] = arr[j];arr[j] = t;}public static void main(String[] args) {int[] arr = {9,8,7,6,5,4,3,2,1};selectSort(arr);System.out.println(Arrays.toString(arr));}
}

總結(jié)

選擇排序也是一種性能較差的排序算法,性能不受數(shù)據(jù)狀況左右,大量浪費比較行為。

插入排序

在這里插入圖片描述

插入排序就像打撲克時拿牌一樣,一張一張將撲克牌放到對應的位置,也是一個基于比較的排序。只是插入排序受數(shù)據(jù)狀況影響,當數(shù)據(jù)狀況趨于有序時,插入排序的速度會非???#xff0c;趨于 O ( N ) O(N) O(N),但是時間復雜度是最壞情況,所以插入排序的時間復雜度是 O ( N 2 ) O(N^2) O(N2).

算法步驟

在這里插入圖片描述
就如上述數(shù)據(jù),我們要將這組數(shù)字從小到大進行排列。從左往右依次考慮每個數(shù)字,讓這個數(shù)字左邊局部有序,考慮完整個數(shù)據(jù)就有序了。

  • 考慮前 1 1 1 個數(shù) 已經(jīng)有序
  • 考慮前 2 2 2 個數(shù),如果前面的數(shù)據(jù)大于當前數(shù)則交換,做到局部有序
  • 考慮前 3 3 3 個數(shù),如果前面的數(shù)據(jù)大于當前數(shù)則交換,做到局部有序
  • … …
  • 考慮前 n ? 1 n - 1 n?1 個數(shù),如果前面的數(shù)據(jù)大于當前數(shù)則交換,做到局部有序
  • 完成排序

動圖

請?zhí)砑訄D片描述

代碼

package package01;import java.util.Arrays;public class P03_InsertSort {public static void insertSort(int[] arr) {if(arr == null || arr.length < 2) {return;}for(int i = 1;i < arr.length;i++) {for(int j = i - 1;j >= 0 && arr[j] > arr[j + 1];j--) {swap(arr,j,j+1);}}}public static void swap(int[] arr,int i,int j) {int t = arr[i];arr[i] = arr[j];arr[j] = t;}public static void main(String[] args) {int[] arr = {0,9,8,7,6,5,4,3,2,1};insertSort(arr);System.out.println(Arrays.toString(arr));}
}

總結(jié)

插入排序的常數(shù)時間要優(yōu)于選擇排序和插入排序,但是其時間復雜度仍然是 O ( N 2 ) O(N^2) ON2

如果本篇文章對你有幫助,請點贊、評論、轉(zhuǎn)發(fā),你的支持是我創(chuàng)作的動力。

http://m.aloenet.com.cn/news/45256.html

相關(guān)文章:

  • 直播網(wǎng)站怎么做啊北京優(yōu)化互聯(lián)網(wǎng)公司
  • wordpress會員時間網(wǎng)站優(yōu)化排名哪家好
  • 下沙做網(wǎng)站的公司上海優(yōu)化網(wǎng)站方法
  • 手機網(wǎng)站頁面設計如何做好一個品牌推廣
  • 網(wǎng)站換域名要怎么做每日新聞快報
  • 深圳代做網(wǎng)站谷歌瀏覽器 免費下載
  • 購物網(wǎng)站建設流程百度app客服人工電話
  • 青島開發(fā)區(qū)人才網(wǎng)青島seo優(yōu)化
  • 麗江建設信息網(wǎng)站汕頭seo排名
  • 網(wǎng)站負責人幕布照片競價網(wǎng)絡推廣培訓
  • 優(yōu)酷網(wǎng)站怎么做的中小企業(yè)管理培訓班
  • 六里橋做網(wǎng)站公司長沙網(wǎng)站優(yōu)化價格
  • 現(xiàn)在用什么工具做網(wǎng)站好app拉新項目推廣代理
  • 編譯django做的網(wǎng)站廣州網(wǎng)站快速優(yōu)化排名
  • 香港做最好看的電影網(wǎng)站有哪些專業(yè)seo關(guān)鍵詞優(yōu)化
  • 如何新做的網(wǎng)站讓百度快速收錄嘉興seo網(wǎng)絡推廣
  • 邢臺網(wǎng)警seo電商運營是什么意思
  • 張家港建設工程質(zhì)量監(jiān)督站網(wǎng)站策劃網(wǎng)絡營銷活動
  • 個人網(wǎng)站建設方案書 備案品牌運營策略有哪些
  • 一般找人做網(wǎng)站多少錢全球搜是什么公司
  • 怎么查網(wǎng)站死鏈谷歌關(guān)鍵詞優(yōu)化怎么做
  • 廊坊seo網(wǎng)站管理seo是什么專業(yè)的課程
  • 網(wǎng)站地圖什么意思優(yōu)化seo軟件
  • wordpress圖標代碼網(wǎng)站優(yōu)化排名資源
  • 中鐵建門戶網(wǎng)登錄入口優(yōu)化公司哪家好
  • 網(wǎng)站平臺推廣百度一下瀏覽器下載安裝
  • 做網(wǎng)站做好用的軟件網(wǎng)絡營銷中的seo是指
  • java課程建設網(wǎng)站怎么做好網(wǎng)絡營銷推廣
  • 網(wǎng)站做第三方支付給企業(yè)做網(wǎng)站的公司
  • 網(wǎng)站建設前言和背景公司網(wǎng)站注冊流程和費用