1、線性查詢
/*** 線性查詢
*/public void
linearsearch(int value)
}}
2、二分法查詢,需要先對陣列進行排序後,再進行二分法查詢
public voidbinarysearchforvalue(int searchnum)
else if(searchnum < array[middleindex])
else
}}
3、氣泡排序,首先要確定乙個目標,然後再兩兩比較,向設立的目標位置進行移動
public voidbubblesort()}}
}
4、氣泡排序2
public voidbubblesort2()
count++;
} }
system.out
.println("
執行次數為
: "+count);
}
5、選擇排序 首先假設當前位置i為最小值,i代表當前需要處理的位置,然後進行比較,找到array[minmum] >array[j]的值,並記錄下來,再一輪比較後獲得最小的值的座標,再把這個下標的值跟當前處理位置i進行交換。
public void6、插入排序 假設左邊的陣列是已經全部排序好的陣列,因為i=0是已經排序好的,因為只有乙個數字,所以序號從i=1開始,記錄下當前的用於比較的key,比較前面乙個數是不是比key大,如果是則array[j-1] 的值移動到array[j]。到最後,將key填入挖出來的位置也就是j。selectsort()
}swap(i,minmum);
}}
/*** insertsort
*/public void
insertsort()
array[j] = key;
}}
7、shell排序(希爾排序)
public class shellsortwhile(gap > 0)
arr[j + gap] = key;
//因為最後的
j-=gap
所以需要變成
j+gap
否則會越界
/**插入排序結束*/}
gap /= 3;//
減小跨度
gap,當
(gap / 3 < 1)
時因為是
int
型別會變為0}
}public void
shellsort2(int array)
while(gap > 0)
array[j+gap] = keyvalue;
} gap /= 3;}
}public static void
main(string args);
shellsort sort = new shellsort();
sort.shellsort2(testarray);
for (int i = 0
; i < testarray.length
; i++)
}}
演算法 常見演算法題
演算法題 假如有100個不相同的數,比如從1到100,怎樣使用10次取出其中的10個不同的數字,要求每個數取出的概率一樣 一開始沒有說10次,所以我說,使用乙個random函式,以時間為種子來取,當取出乙個時,做標記,下次再取到這個數時,重新取一次 然後他就說了如果只能夠取10次怎麼辦?一開始我想到...
python常見基礎小練習
1.輸入乙個年份,判斷是否為閏年。條件1 不能被100整除且能被4整除 條件2 被400整除 世紀年 year int input 請輸入乙個年份 if year 4 0 and year 100 0 print d年是閏年 year elif year 400 0 print d年是閏年 year...
鍊錶常見操作練習
鍊錶是乙個很重要的資料結構,一直沒有好好的寫過練習,這次放假,好好練習一下。1 定義鍊錶節點 include include include typedef struct int node node 2 合併兩個有序鍊錶 版本1 node merge node p,node q else while...