氣泡排序及遞迴

2022-07-22 09:03:08 字數 1756 閱讀 8394

1,氣泡排序

原理

目的:按從小到大排序。

方法:假設存在陣列:10, 8, 3, 5, 6, 7, 9

第一輪比較相鄰兩個元素,如果左邊元素大於右邊元素,則交換。 

以此類推,第一輪比較之後的結果是:3, 10, 8, 5, 6, 7, 9

經過第一輪比較,最小的元素跑到了第乙個,所以第二輪比較,第乙個元素不需要進行比較了。

第二輪還是從索引i=1和j=2開始比較 ,第三輪、第四輪以此類推。

排序之後的結果:3, 5, 6, 7, 8, 9, 10 

**

public

static

void main(string

args)

;int temp = 0

;

for (int i = 0; i < arrsort.length; i++)

}

}foreach (var item in

arrsort)

", item));

}console.writeline();

console.readkey();

}

2,遞迴

什麼是遞迴函式/方法?

任何乙個方法既可以呼叫其他方法又可以呼叫自己,而當這個方法呼叫自己時,我們就叫它遞迴函式或者遞迴方法!

通常遞迴有兩個特點:

1.遞迴方法一直會呼叫自己直到某些條件滿足,也就是說一定要有出口;

2.遞迴方法會有一些引數,而它會把這些新的引數值傳遞給自己;(自己調自己);

遞迴通常用於:  ①.階乘  ②.斐波拉切數列;

1.階乘

階乘(!)是小於某個數的所有正整數的乘積;

注意:0既不是正整數,又不是負整數;0是整數;

0!=1

1!=1

2!=2*1!=2

3!=3*2!=6

4!=4*3!=24

5!=5*4!=120

...n!=n*(n-1)!

// 遞迴方法:

pubic long factorial(int

n) }

你知道的,n的階乘實際上就是n-1的階乘乘以n,且n>0;

它可以表示成factorial(n)=factorial(n-1)*n;

這是方法的返回值,但我們需要乙個條件,也就是出口(注意:遞迴一定要有出口)

如果n=0則返回1;

2.(fibonacci)斐波拉切數列:

fibonacci數列是按以下順序排列的數字:

1,1,2,3,5,8,13,21,34,55....

我們不難發現數列的排列規律是:後乙個數加上前乙個數,以此類推;

如果f0=0並且f1=1那麼fn=f(n-1)+f(n-2);

public

long fabinacci(int

n)

return fabinacci(i-1)+fabinacci(i-2);  //

返回值

}

氣泡排序及遞迴

氣泡排序 li 11,2,3,22 print len li for j in range 1,len li for i in range len li j 由於函式中存在li i 1 那麼要保證li i 1 不越界。此時就需要在迴圈範圍進行限制。從而得出i和j 的最大值。由於最後一次大小比較發生在...

氣泡排序,,,,遞迴

第一種 這種方法氣泡排序 比較相鄰的兩個元素,如果前乙個比後乙個大,則交換位置。第一輪把最大的元素放到了最後面。由於每次排序最後乙個都是最大的,所以之後按照步驟1排序最後乙個元素不用比 function arr sort data arr sort arr 第二種方法時對氣泡排序的改進 宣告乙個變數...

氣泡排序 遞迴

一 氣泡排序 1思想 氣泡排序思想 每一次對比相鄰兩個資料的大小,小的排在前面,如果前面的資料比後面的大就交換這兩個數的位置 要實現上述規則需要用到兩層for迴圈,外層從第乙個數到倒數第二個數,內層從外層的後面乙個數到最後乙個數 2特點 排序演算法的基礎。簡單實用易於理解,缺點是比較次數多,效率較低...