C語言 「氣泡排序」與「二分法」

2022-05-23 19:30:10 字數 785 閱讀 4612

1.氣泡排序:

what:將元素進行兩兩比較,大的(小的)向後排。

when:陣列中有多個元素,需要進行比較排序比較的時候使用。

how:n個數字來排隊,兩兩比較小靠前。(公升序)

外層迴圈:n-1(控制比較的輪數)

內層迴圈:n-1-i(控制每輪比較的的次數,i代表外層迴圈變數)

for example:

int num[5];

int i,k,j,temp;

for(i=0;i<5;i++)

for(i=0;i<4;i++)} }

for(j=0;j<5;j++)

2.二分法查詢(折半查詢):前提查詢的元素必須有序。

what:將待查詢的元素與陣列中的中間位置元素進行比較。

when:要查詢陣列中某一元素。

how:將待查詢的數字與陣列中的中間位置進行比較。

如果比中間位置的元素值小,去左邊查詢(更改結束位置)。

如果比中間位置的元素值大,去右邊查詢(更改起始位置)。

for example:

int nums[9]=;

int i=0,left,right,mid,search;

left=0;

right=8;

printf("請輸入要查詢的值\n");

scanf("%d",&search);

while(left<=right)  //當為偶數序列時會出現相等的情況

else }

printf("查詢這個%d一共用了%d次\n",search,i);

氣泡排序 二分法

核心 掐頭去尾取中間.一次砍一半 二分查詢.每次能夠排除掉一半的資料.查詢的效率非常高.但是侷限性比較大.必須是有 序序列才可以使用二分查詢 兩種演算法 常規迴圈,遞迴迴圈 使用二分法可以提高效率,前提條件 有序序列 lst 22,33,44,55,66,77,88,99,101 238 345 4...

二分法和氣泡排序

先放乙個 可以看到冒泡,選擇,插入排序的過程 冒泡 選擇 插入排序 前言 二分法是乙個優化演算法,在乙個基於有序列表中,列表從1到10000,如果要找乙個8899的數字,不用二分法的話,就是迴圈從一到10000,直到找到8899.但是,有沒有想過,前5000個都比8899小,所以能不能直接第一次就判...

氣泡排序,二分法查詢

lst 18,8,16,2,5,7 通過交換的方式.把列表中最大的值一定到最右端 for abc in range len lst 控制內部移動的次數 n 0 while n len lst 1 if lst n lst n 1 lst n lst n 1 lst n 1 lst n n n 1 p...