工作原理:
<1>.比較相鄰的元素。如果第乙個比第二個大,就交換它們兩個;
<2>.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對,這樣在最後的元素應該會是最大的數;
<3>.針對所有的元素重複以上的步驟,除了最後乙個;
<4>.重複步驟1~3,直到排序完成。
obj = [10,4,29,5,7,80,34,19,8]
length = len(obj)
for i in range(length):
for j in range(length-1-i):
if obj[j] > obj[j+1]:
obj[j],obj[j+1] = obj[j+1], obj[j]
print(obj)
工作原理:
<1>首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,
<2>然後,再從剩餘未排序元素中繼續尋找最小(大)元素,
<3>然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。
『』』
obj = [10,4,29,5,7,80,34,19,8]
length = len(obj)
for i in range(length):
for j in range(i+1,length):
if obj[i] > obj[j]:
obj[i],obj[j] = obj[j], obj[i]
print(obj)
工作原理:
<1>.從第乙個元素開始,該元素可以認為已經被排序;
<2>.取出下乙個元素,在已經排序的元素序列中從後向前掃瞄;
<3>.如果該元素(已排序)大於新元素,將該元素移到下一位置;
<4>.重複步驟3,直到找到已排序的元素小於或者等於新元素的位置;
<5>.將新元素插入到該位置後;
<6>.重複步驟2~5。
obj = [10,4,29,5,7,80,34,19,8]
length = len(obj)
for i in range(length):
for j in range(i,0,-1):
if obj[j-1]>obj[j]:
obj[j-1],obj[j] = obj[j], obj[j-1]
print(obj)
先取乙個小於n的整數d1作為第乙個增量,把檔案的全部記錄分組。所有距離為d1的倍數的記錄放在同乙個組中。先在各組內進行直接插入排序;然後,取第二個增量d21:#迴圈所有增量的可能性
length//=2
result = insertsort(obj,length)
print(result)
Java排序演算法之氣泡排序 插入排序 選擇排序
一 前言 排序是日常中最常見的一種演算法,常見的演算法有 氣泡排序 插入排序 選擇排序 歸併排序 快速排序 計數排序 快速排序 基數排序 桶排序。那麼該怎樣分析和學習排序演算法呢?二 演算法的分析課 在上述的八種排序方法中,根據時間複雜度和是否基於比較可以為三種 排序演算法 時間複雜度 是否基於比較...
排序演算法 氣泡排序 選擇排序 插入排序
氣泡排序演算法 氣泡排序是最簡單的排序演算法之一。此演算法具有二次方程增長階,因此僅適合排序小列表。氣泡排序演算法是階o n 2 的演算法 package com.szy.structure.sort public class bubblesort system.out.println 排序前 fo...
排序演算法 氣泡排序 插入排序 選擇排序
2 穩定性 2.氣泡排序 3.插入排序 4.選擇排序 5.總結 對於演算法,我們首先考慮的就是其時間複雜度和空間複雜度。1 時間複雜度 另外,由於序列順序不一定,不同情況下的時間複雜度也不同,所以我們還要考慮最好情況和最壞情況。2 空間複雜度 這裡引入了乙個新的概念,我們把o 1 的空間複雜度的排序...