1. 程式人生 > >軟體測試工程師--十大排序

軟體測試工程師--十大排序

1.氣泡排序

2.快速排序

3.直接排序

4.堆排序

5.直接插入排序

6.希爾排序

7.歸併排序

8.計數排序

9.桶排序

10.基數排序

從頭學,一點一點補充。

氣泡排序

它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序(如從大到小、首字母從A到Z)錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素已經排序完成。     --百度百科

l = [42, 3, 5, 69, 9, 1, 4, 0, 0, 0, 100]
ll = len(l)
while ll > 0:
    for i in range(0, ll-1):
        if l[i] > l[i+1]:
            l[i], l[i+1] = l[i+1], l[i]
        else:
            continue
    ll = ll-1
print(l)

快速排序

通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小,然後再按此方法對這兩部分資料分別進行快速排序,整個排序過程可以遞迴進行,以此達到整個資料變成有序序列。    --百度百科

def QuickSort(myList,start,end):
    #判斷low是否小於high,如果為false,直接返回
    if start < end:
        i, j = start, end
        #設定基準數
        base = myList[i]
        while i < j:
            #如果列表後邊的數,比基準數大或相等,則前移一位直到有比基準數小的數出現
            while (i < j) and (myList[j] >= base):
                j = j - 1
            #如找到,則把第j個元素賦值給第個元素i,此時表中i,j個元素相等
            myList[i] = myList[j]
            #同樣的方式比較前半區
            while (i < j) and (myList[i] <= base):
                i = i + 1
            myList[j] = myList[i]
        #做完第一輪比較之後,列表被分成了兩個半區,並且i=j,需要將這個數設定回base
        myList[i] = base

        #遞迴前後半區
        QuickSort(myList, start, i - 1)
        QuickSort(myList, i + 1, end)
    return myList

myList = [5, 10, 3, 7, 1, 3, 8, 6, 100]
print("Quick Sort: ")
QuickSort(myList, 0, len(myList)-1)
print(myList)

直接選擇排序

第一次從R[0]~R[n-1]中選取最小值,與R[0]交換,第二次從R[1]~R[n-1]中選取最小值,與R[1]交換,....,第i次從R[i-1]~R[n-1]中選取最小值,與R[i-1]交換,.....,第n-1次從R[n-2]~R[n-1]中選取最小值,與R[n-2]交換,總共通過n-1次,得到一個按排序碼從小到大排列的有序序列。       --百度百科

def SelectionSort(arr): 
    for i in range(len(arr)):
        min = i
        for j in range(i + 1, len(arr)):
            if arr[j] < arr[min]:
                min = j
        arr[i], arr[min] = arr[min], arr[i]
    return arr

arr = [49, 38, 65, 97, 26, 13, 27, 49, 55, 4]
print(SelectionSort(arr))

桶排序

將陣列分到有限數量的桶子裡。每個桶子再個別排序(有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序) --百度百科

#簡單的桶排序從大到小輸出:簡單、浪費空間、不支援小數、負數
#對0-10之間的數字進行排序
#利用一維陣列tong_ary[],陣列初始化為0
#如果輸入5,則陣列索引為5的地方加1

tong_ary=[0,0,0,0,0,0,0,0,0,0,0]
for i in range(0,11):
    n=int(input("請輸入數:"))
    tong_ary[n]=tong_ary[n]+1

for j in range(10,-1,-1):
    while tong_ary[j] > 0:
        print(j,end=' ')
        tong_ary[j]=tong_ary[j] - 1


#去重後從小到大輸出:
#for j in range(0,11):
#    if tong_ary[j] > 0:
#        print(j,end=' ')

相關推薦

軟體測試工程師--排序

1.氣泡排序 2.快速排序 3.直接排序 4.堆排序 5.直接插入排序 6.希爾排序 7.歸併排序 8.計數排序 9.桶排序 10.基數排序 從頭學,一點一點補充。 氣泡排序 它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序(如從大

軟體測試原則

原則是最重要的,方法應該在這個原則指導下進行。軟體測試的基本原則是站在使用者 的角度,對產品進行全面測試,儘早、儘可能多地發現 Bug, 並負責跟蹤和分析產品中的問 題,對不足之處提出質疑和改進意見。 零缺陷(Zero-Bug) 是一種理念,足夠好(Good-Enough)是測試的基本原則。在軟體測試過

測試技術牛談成長經歷:一個好的軟體測試工程師應該做到這些!

我們在變化中成長。假設你拒盡了變化,你就拒盡了新的美麗和新的機遇。 初始軟體測試   “這是一個杯子,主要用來喝水的,它的質量應該如何考量?”   這是在進入上家公司面試時,測試主管問我的題目,相關的回答已經有點模糊,但從這個問題可以大概瞭解到,測試主管在考察我的測試思維。   首先

軟體測試工程師必考linux的面試題(老題)附實拍面試筆試題圖

這個老十題是軟體測試工程師在參與面試“測試工程師/架構師”崗位時,經常遇到的Linux筆試題,一般測試的過程中,所涉及到的Linux操作命令,也就是這十大類操作。請看—— 一、請寫出如下功能Linux命

軟體測試工程師未來年的職業規劃

一、軟體測試工程師大致有4個發展方向: 1 資深軟體測試工程師 一般情況,軟體測試工程師可分為測試工程師、高階測試工程師和資深測試工程師三個等級。 達到這個水平比較困難,這需要了解很多知識,例如C語言,Java語言,資料庫,資料結構,軟體工程,等等,但是你要在一家公司幹3

軟體測試工程師的“三六變”

其實這篇博文是寫出來想給大家分享一下測試工程師的職業發展的,顯然是老話題了,因此我假設本文的目標讀者為: 想進入軟體測試領域,還不太清楚實際的軟體測試長什麼樣的童鞋。剛上走上測試這條路不久,接觸過一些實際專案了,但還沒“擰”上道的童鞋。做了一段時間測試,也明白了軟體測

多年軟體測試牛分享成長經歷,一個好的軟體測試工程師應該做到這些!

我們在變化中成長。假設你拒絕了變化,那麼,你就拒盡了新的美麗和新的機遇。 初始軟體測試 “這是一個杯子,主要用來喝水的,它的質量應該如何考量?” 這是在進入上家公司面試時,測試主管問我的題目,相關的回答已經有點模糊,但從這個問題可以大概瞭解到,測試主管在考察我的測試思維。 其次,如何去準確獲取、表現這些需

[ 轉載 ] js排序算法:冒泡排序

排序算法 span lan str ref bsp clear size spa http://www.cnblogs.com/beli/p/6297741.html[ 轉載 ] js十大排序算法:冒泡排序

排序算法Java實現

nbsp main 計數 計數器 希爾 sele style div lec 1.冒泡排序Bubble Sort public class BubbleSort { public static void main(String[] args) {

從小白到中級高階軟體測試工程師成長路線!

上篇文章主要給大家介紹了成長路線的中級階段,這篇文章接著上一篇文章,主要寫一下中級和高階的階段,需要看全文的可以接著上一篇文章進行檢視,文章在我的部落格裡。同樣的,思維導圖我放在文末,可能上傳之後會看不清,私信我找我要原圖即可。 轉入正題。 中級階段 一、QTP自動

寫給五年前的自己(軟體測試工程師總結)

       五年前,偶然機會進入測試行業,那個時候,實習什麼都不懂,特別羨慕有三五年測試經驗的人,想著,等自己也有五年經驗了,也要像部落格園的大神一樣,給初入測試行業的同學一些有用的建議和指導,如今,已經五年了,卻沒有成為自己當初想成為的那種大神,這篇博文,權當是完成

排序演算法的實現 經典排序演算法最強總結(含JAVA程式碼實現)

十大經典排序演算法最強總結(含JAVA程式碼實現)   最近幾天在研究排序演算法,看了很多部落格,發現網上有的文章中對排序演算法解釋的並不是很透徹,而且有很多程式碼都是錯誤的,例如有的文章中在“桶排序”演算法中對每個桶進行排序直接使用了Collection.sort

軟體測試軟體測試工程師——如何“跑”在專案的最前面!!!

網際網路經濟的今天,一個想法就是一桶金,很多時候想法有了,已經做好了開發產品的計劃,但是開發速度有的時候影響了產品的上線時間,導致桶裡就剩下半桶金了,這樣的案例不在少數,所以現在產品開發速度,迭代速度激增,今天就為大家講解一下快速迭代下QA的生存之道! 一、背景 儘管"小步快跑"的快速迭×××發方式早已成

實習總結-中國航空無線電電子研究所軟體測試工程師

失落失望只是暫時,對自己:“希望你以後如樹一般成長,忘掉以前的悲傷,奮起直追!” 妹妹對我說:“當你覺得為時已晚的時候,恰恰是最早的開始!”共勉! 很榮幸能夠獲得這次實習的機會,加入軟體測評實驗室,在近四個月的實習時間中,我學到了很多。 第一次參加工作,心中難免有些忐忑,從開

排序總結】(JAVA)

文章目錄 排序總結 氣泡排序 桶排序 標準的桶排序 插入排序 希爾排序 選擇排序 計數排序 基數排序 堆排序 歸併排序 快速排序

軟體測試工程師筆試題及答案(二)

測試人員考試試卷二(考試時間90分鐘,滿分100分) 一、 判斷題(每題2分,正確的“√”,錯誤的“╳”)  1 、 好的測試員不懈追求完美。(×)  2、 測試程式僅僅按預期方式執行就行了。(×)  3、 不存在質量很高

軟體測試工程師筆試題(一)

軟體測試筆試題(答案) 判斷題1.軟體測試的目的是儘可能多的找出軟體的缺陷。(Y) 2.Beta 測試是驗收測試的一種。(Y) 3.驗收測試是由終端使用者來實施的。(N) 4.專案立項前測試人員不需要提交任何工件。(Y) 5.單元測試能發現約80%

前端排序演算法

一、插入排序 <script> /* 原理:通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃描,找到相應位置並插入。插入排序在實現上,通常採用inplace排序(即只需用到O(1)的額外空間排序),因而在從後向前掃描過程中,需要反覆把已排序元素逐步向後挪位,為最新元

如何去面試軟體測試工程師

首先買個關子,如果你是面試官,你希望招一個什麼樣的人進來? 如果這個問題搞明白了,那麼可以說測試崗位的面試,就變得非常輕鬆了。 首先這樣,我先把我的存貨擺出來,專門針對測試的一個合集。連結我放在文末,你們看完了剛好可以自行去下載。 按照一般的慣例,面試官都會讓你自我介紹,介紹你的專案經驗,詢問你的技術能

軟體測試工程師的職業技能分析

職業技能一: 1. 軟體測試: 1) 熟練靈活地運用等價類、邊界值、判定表法、因果圖法等各種方法設計測試用例,包括單元測試、整合測試、系統測試用例設計。 2) 牢固掌握了軟體測試計劃、測試日報、測試報告的寫作方法與要領。 3) 針對B/S、C/S架構及不同需求,靈活有效地制定功能測試、效能測試、配置測試、GU