程式猿必懂的排序方法(1)--插入排序
直接插入排序--基本思想
在要排序的一組數中,假設前面的(n-1)[n>=2] 個數已經是排好序的。現在要把第n個數插入到前面的有序數中,使得n個數也是排好序的。如此反覆迴圈,直到全部排好順序。
上程式碼 :
/**
* 插入排序
* 平均O(n^2),最好O(n),最壞O(n^2);空間複雜度O(1);穩定;簡單
* @author zeng
*
*/
public
static
void
insertionSort(
int
[] a) {
int
tmp;
for
(
int
i =
1
; i < a.length; i++) {
for
(
int
j = i; j >
0
; j--) {
if
(a[j] < a[j -
1
]) {
tmp = a[j -
1
];
a[j -
1
] = a[j];
a[j] = tmp;
}
}
}
}
相關推薦
程式猿必懂的排序方法(1)--插入排序
直接插入排序--基本思想 在要排序的一組數中,假設前面的(n-1)[n>=2] 個數已經是排好序的。現在要把第n個數插入到前面的有序數中,使得n個數也是排好序的。如此反覆迴圈,直到全部排好順序。 上程式碼 : /** * 插入排序 * 平均O(n^2),最好O(
排序演算法(1)插入排序的演算法分析
導語 今天,我們介紹的是排序演算法經典的一種排序演算法,這個演算法是插入排序。 相信大家都玩過紙牌。插入排序的工作方式就像許多人排序一手撲克牌。 開始時,我們的左手為空並且桌子上的牌面朝下(意味著我們不在翻開之前並不知道下一張牌是多大的)
java算法----排序----(1)插入排序
pan 排序 string ack src [] AR style inf 1 package log; 2 3 public class Test4 { 4 5 /** 6 * java算法---插入排序 7 * 8
經典排序演算法(1)——氣泡排序演算法詳解
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
八種排序方法(一)——選擇排序
編譯器:Xcode 程式語言:C++ 選擇排序的基本思想: 每一趟在n-i+1(i=1,2,3…,n-1)個記錄中選取關鍵字最小的記錄與第i個記錄交換,並作為有序序列中的第i個記錄。
八種排序方法(七)——歸併排序
編譯器:Xcode 程式語言:C++ 源程式: #include<iostream> using namespace std; void merge(int a[],int l
java排序演算法(二)------插入排序
插入排序 直接插入排序基本思想: 每一步將一個待排序的記錄,插入到前面已經排好序的有序序列中去,直到插完所有元素為止。 public static void sort(int[] arr) { int i; int t; for (int j
java 實現 常見排序演算法(二) 插入排序
大家好,我是烤鴨: 今天分享一下基礎排序演算法之直接插入排序。 1. 直接插入排序: 原理:假設前面的數為有序數列,然後有序數列與無序數列的每個數比較,我們可
排序演算法(四)——插入排序
插入排序(英語:Insertion Sort)是一種簡單直觀的排序演算法。通過對未排序的資料執行逐個插入至合適的位置而完成排序工作。 插入排序演算法的運作如下: 1.首先對陣列的前兩個資料進行從小到大的排序; 2.接著將第3個數據與排好序的兩個資料進行比較,將第三個資料插入合適的位置;
Android自動化測試遇到的問題及解決方法(1)
粘貼 png family 學習 再次 jmeter log 初始 mage 編者按:本文是小小小提姆在使用自動化測試工具TestWriter時的一點使用心得~我叫小小小提姆,是一名在IT行業的洪流中力爭上遊的軟件測試員,個人軟件測試擅長方向:1、功能測試(熟悉Fiddle
養成良好的學習習慣-淺談學習方法(1)
養成 學習習慣 良好的 淺談學習方法(1) 1.老男孩教育要培訓什麽? 思想技術 知識 2.養成良好的學習習慣和聽課習慣 1)帶一支筆和本,記錄老師講解的內容 2 總結時 ,記錄關鍵的信息,抓重點 3) 聽課習慣:調動所有感官學習 眼睛看、勤動手(
【javascript】DOM操作方法(1)——節點屬性
demo1 tex rip tar nerd 屬於 fin ntb art 一、節點屬性Node.nodeName //返回節點名稱,只讀 Node.nodeType //返回節點類型的常數值,只讀 Node.nodeValue //返回Text或Comment
7. python 字符串格式化方法(1)
cal rda 讀取 osi body err onf apt -s 7. python 字符串格式化方法(1) 承接上一章節,我們這一節來說說字符串格式化的另一種方法,就是調用format() >>> template=‘{0},{1} and {2
排序算法(1)——冒泡排序
除了 分析 .... sqli span als 排序。 lag AS 冒泡排序 冒泡排序可以說是最簡單的一種排序,當然,復雜度也是最高的 冒泡排序的實現過程:兩兩之間相互比較,當前者比後者大的時候,兩者交換(假設是升序排列)。 那麽給出簡單的冒泡排序算法: #defin
排序方法(二)補
import __name__ () def col == doctest AS all 插入法排序還可以用python的切片功能和遞歸的思路來實現 ‘‘‘ From smallest to largest ‘‘‘ def insert_sorted(list_of_nb
數據結構(四十四)插入排序(1.直接插入排序 2.希爾排序)
結束 縮小 移動 個數 數據 空間 分析 過程 只有一個 一、插入排序的基本思想 從初始有序的子集合開始,不斷地把新的數據元素插入到已排列有序子集合的合適位置上,使子集合中數據元素的個數不斷增多,當子集合等於集合時,插入排序算法結束。常用的 插入排序算法有直接插入排
優化Join運算的系列方法(1)
target 容易 style one groups 用戶數 準備 要求 自然 轉載自http://c.raqsoft.com.cn/article/1535868803095?r=niu JOIN是關系數據庫中常用運算,用於把多個表進行關聯,關聯條件一般是判斷某個關聯字段
優化 Join 運算的系列方法(1)
JOIN是關係資料庫中常用運算,用於把多個表進行關聯,關聯條件一般是判斷某個關聯欄位的值是否相等。隨著關聯表的增多或者關聯條件越來越複雜,無論理解查詢含義、實現查詢語句,還是在查詢的效能方面,可以說JOIN都是最具挑戰的SQL運算,沒有之一。 特別是JOIN的效能,一直是個老大
長短期記憶(LSTM)系列_LSTM的建模方法(1)——生成式LSTM網路,Encoder-Decoder LSTM網路,CNN LSTM(LRCN)網路建模介紹
導讀 文中介紹了三種LSTM的建模應用,分別是生成式LSTM網路,Encoder-Decoder LSTM網路,CNN LSTM(LRCN)網路。 大致介紹了一下每種網路的建模方法和應用場景,這裡僅做了解即可 原文連結: 生成性長短期記憶網路 編碼器 - 解碼器長短期儲存
機組筆記之計算機運算方法(1)
** 本文用來介紹無符號數和有符號數。 **計算機中數的表示指的是能夠被計算機硬體直接識別和處理的資料, 在計算機中所有的數以補碼的形式儲存。 本文解決以下幾個問題: 在計算機中數是怎樣被儲存起來的? 補碼形式儲存計算機的數有什麼優勢? 或者說為什麼要用補碼