【Java】五種常見排序之-----------冒泡排序

冒泡排序:

?

  • 原理: 將關鍵字較小的值不斷地上浮,將關鍵字值較大的不斷下沉;
  • 時間復雜度:O(n^2)
  • 空間復雜度:最優(即已經排好序)為0,平均空間復雜度為O(1);
  • 核心代碼:

?

for(int i=0;i<n;i++){

for(int j=i;j<n;j++){

if(num[i]>num[j]){//數值較大的數進行交換下沉

int temp;

temp=num[i];

num[i]=num[j];

num[j]=temp;

}

}

}


【Java實現完整代碼】


?

package paixu;

?

?

/**

?

?

* @author xpengfei

?

?

*/

?

?

import java.util.Scanner;

?

?

/*

?

?

* 效率最低的冒泡排序

?

?

* 說明冒泡排序的時間復雜度符合O(n^2)。

?

?

*?

?

?

* 時間復雜度,最優與最差都需要[n*(n-1) ] / 2次比較,所以時間復雜度為O(n^2).

?

?

* 空間復雜度,最優即已排好序,空間復雜度為0;平均空間復雜度為O(1)。

?

?

*/

?

?

public class sortOne {

?

?

Scanner input=new Scanner(System.in);

?

?

private int[]num;//存放隨機數數組

?

?

private int n;//待輸入的數組規模n

?

?

public sortOne(){//構造函數,初始化數組;

?

?

System.out.println("請輸入數組大小N的值:");

?

?

n=input.nextInt();

?

?

num=new int[n];

?

?

System.out.println("隨機生成的數組如下:");

?

?

for(int i=0;i<n;i++){

?

?

num[i]=(int)(Math.random()*1000);

?

?

System.out.println(num[i]);

?

?

}

?

?

}

?

?

public void sort(){//冒泡排序核心算法

?

?

for(int i=0;i<n;i++){

?

?

for(int j=i;j<n;j++){

?

?

if(num[i]>num[j]){//數值較大的數進行交換下沉

?

?

int temp;

?

?

temp=num[i];

?

?

num[i]=num[j];

?

?

num[j]=temp;

?

?

}

?

?

}

?

?

}

?

?

}

?

?

public void displayResult(){//該函數將排好序的數組進行有序輸出

?

?

System.out.println("數組排序后的結果為:");

?

?

for(int i=0;i<n;i++){

?

?

System.out.println(num[i]);

?

?

}

?

?

}

?

?

public static void main(String []args){

?

?

sortOne sone=new sortOne();

?

?

sone.sort();

?

?

sone.displayResult();

?

?

}

?

?

}

?

?


?

?

轉載于:https://www.cnblogs.com/xpfei/p/7450815.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284417.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284417.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284417.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

混戰的低代碼江湖,如何區分「李逵」和「李鬼」?

作者&#xff1a;APICloud 創始人劉鑫 這兩年&#xff0c;無論是資本層面&#xff0c;還是企業IT部門的關注&#xff0c;“低代碼”都是絕對的熱點。互聯網圈也似在一夜之間冒出了各種各樣的低代碼公司。 到底什么是低代碼&#xff1f;低代碼是新技術么&#xff1f;低代碼開發能…

關于捕獲鍵盤信息的processDialogkey方法2--具體應用

自定義控件里的keydown方法無法捕獲所有的按鍵消息的處理方法1&#xff08;自定義控件里的keydown方法無法獲取的鍵值如上下左右鍵等&#xff09; 處理辦法具體如下&#xff1a; 1、首先在自定義控件UserControl1中重寫ProcessDialogKey方法 自定義控件UserControl1中重寫Proce…

指針

指針 題目一&#xff1a; 計算兩數的和與差 本題要求實現一個計算輸入的兩數的和與差的簡單函數。 函數接口定義&#xff1a; void sum_diff( float op1, float op2, float psum, float pdiff ); 其中op1和op2是輸入的兩個實數&#xff0c;psum和pdiff是計算得出的和與差。 裁判…

【MapGIS精品教程】006:MapGIS根據經緯度計算各比例尺圖幅編號

己知某點的經緯度或圖幅西南圖廓點的經緯度,計算該點所在圖幅號。 例題一:某點的經度為11433′45″,緯度為3922′30″,計算所在1:250000圖幅的編號。 文章目錄 1. 公式計算編號的方法2. 軟件計算編號的方法1. 公式計算編號的方法 求解過程: 第一步,利用下列公式計算其所…

寫出一個緩存系統的偽代碼001

/*** 寫出一個緩存系統的偽代碼*/ public class CacheDemo {private Map<String, Object> map new HashMap<String, Object>();public static void main(String[] args) {// TODO Auto-generated method stub} public synchronized Object getData(String key)…

分析完百年飛機空難數據,我發現了這幾條“保命”小秘訣

來 源&#xff5c;Giao數據 數 據 | YaJie 文 章 | 張子豪,YaJie 本文爬取了飛機失事網1908-2020年空難相關數據&#xff0c;包括空難發生次數、機組和乘客的死亡人數與死亡率、不同季節的空難發生次數、空難相關文本的關鍵詞、空難高發地、空難高發航空公司、空難高發機型以…

用 QuestPDF操作生成PDF更快更高效!

QuestPDFQuestPDF是一個開源的工具庫&#xff0c;可以在.NET或者.Net Core中生成pdf文檔它提供了一個布局引擎&#xff0c;設計時考慮到了完整的分頁支持以及靈活性要求&#xff01;比市面上常見的Aspose和iTextSharp好用太多了&#xff01;GitHub地址安裝Install-Package Ques…

ASP.NET vs MVC vs WebForms

許多ASP.NET開發人員開始接觸MVC認為MVC與ASP.NET完全沒有關系&#xff0c;是一個全新的Web開發&#xff0c;事實上ASP.NET是創建WEB應用的框架而MVC是能夠用更好的方法來組織并管理代碼的一種更高級架構體系&#xff0c;所以可以稱之為ASP.NET MVC。 我們可將原來的ASP.NET稱為…

產品經理有哪些類型?

不知道大家是如何給產品經理這個職業進行分類&#xff0c; 按負責的產品&#xff1f;按等級&#xff1f;按工作年限&#xff1f;按工作方向等&#xff1f; 一、按工作內容分 1. 功能設計產品經理 最常見的了&#xff0c;負責的工作就是設計出功能來。從 APP 的界面&#xff0…

在Blazor 中自定義權限驗證

Blazor是什么Blazor 是微軟在 .NET 里推出的一個 WEB 客戶端 UI 交互的框架&#xff0c;使用 Blazor 你可以代替 JavaScript 來實現自己的頁面交互邏輯&#xff0c;可以很大程度上進行 C# 代碼的復用&#xff0c;Blazor 對于 .NET 開發人員來說是一個不錯的選擇。需求背景其實我…

看出每個應用程序最高可用內存是多少

int maxMemory (int) (Runtime.getRuntime().maxMemory() / 1024); Log.d("TAG", "Max memory is " maxMemory "KB"); 轉載于:https://www.cnblogs.com/coderwjq/p/6501639.html

中文分詞之HMM模型詳解

文章轉載自: http://yanyiwu.com/work/2014/04/07/hmm-segment-xiangjie.html HMM(Hidden Markov Model): 隱式馬爾科夫模型。 HMM模型可以應用在很多領域&#xff0c;所以它的模型參數描述一般都比較抽象&#xff0c;以下篇幅針對HMM的模型參數介紹直接使用它在中文分詞中的實…

【ArcGIS微課1000例】0035:地圖面狀符號設計教程

地圖符號是表示地圖內容的基本手段,它由形狀不同、大小不一、色彩有別的圖形和文字組成。 地圖符號是地圖的語言,是一種圖形語言。它與文字語言相比較,最大的特點是形象直觀,一目了然。 本文講解ArcGIS中面狀符號設計方法。 文章目錄 一、新建符號樣式二、面狀符號設計1. 斜…

MySQL奪命15問,你能堅持到第幾問?

前言 MySQL在面試中經常被問到&#xff0c;本文總結了面試中的經典問題。 1. 數據庫三大范式是什么&#xff1f; 第一范式&#xff1a;每個列都不可以再拆分。 第二范式&#xff1a;在第一范式的基礎上&#xff0c;非主鍵列完全依賴于主鍵&#xff0c;而不能是依賴于主鍵的一部…

ios元素定位

原文地址http://www.cnblogs.com/meitian/p/7373460.html 第一種&#xff1a;通過Appium1.6的Inspector來查看 具體安裝方式前面的隨筆已經介紹了&#xff1a;http://www.cnblogs.com/meitian/p/7360017.html可以通過定位找到元素xpath或name個人不推薦用這個方法&#xff0c;實…

分治法——循環賽日程表

1、問題描述&#xff1a;有n2^k個遠動員選手&#xff0c;設計比賽日程表實現&#xff1a;&#xff08;1&#xff09;每個選手必須與n-1個選手比賽&#xff08;2&#xff09;每個選手一天只比賽一場&#xff08;3&#xff09;比賽共進行n-1天輸入&#xff1a;n人輸出&#xff1a…

使用 LSM-Tree 思想基于.NET 6.0 C# 寫個 KV 數據庫(案例版)

文章有點長&#xff0c;耐心看完應該可以懂實際原理到底是啥子。這是一個KV數據庫的C#實現&#xff0c;目前用.NET 6.0實現的&#xff0c;目前算是屬于雛形&#xff0c;骨架都已經完備&#xff0c;畢竟剛完工不到一星期。當然&#xff0c;這個其實也算是NoSQL的雛形&#xff0c…

35.使用攔截器實現權限驗證

轉自&#xff1a;https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 為了說明此問題&#xff0c;我們建立struts2auth項目&#xff0c;流程圖如下&#xff1a; 簡短說明&#xff1a;當我們訪問main.jsp頁面&#xff0c;并試圖通過此頁面中的鏈接地址&#xff1a;not…

如何保證緩存和數據庫的一致性?

1. 問題分析 2. Cache-Aside 2.1 讀緩存 2.2 寫緩存 2.3 延遲雙刪 2.4 如何確保原子性 3. Read-Through/Write-Through 3.1 Read-Through 3.2 Write-Through 4. Write Behind 很多小伙伴在面試的時候&#xff0c;應該都遇到過類似的問題&#xff0c;如何確保緩存和數據庫…

Pressed狀態和clickable,duplicateParentState的關系

做Android開發的人都用過Selector,可以方便的實現View在不同狀態下的背景。不過&#xff0c;相信大部分開發者遇到過和我一樣的問題&#xff0c;本文會從源碼角度&#xff0c;解釋這些問題。 首先&#xff0c;這里簡單描述一下&#xff0c;我遇到的問題&#xff1a; 界面上有個…