1.直接排序法:(原理是拿第一個位置和其他的位置進行比較然后在循環四次就可以了)
public static? void zhijiepaixun (int[] arr){
以一個角標的元素和其他元素進行比較。
在內循環第一次結束,最值出現的頭角標位置上。
System.out.println("直接排序");
for(inti =0; i < arr.length-1; i++) {
? ? ? ? for(int j = i+1; j< arr.length; j++){
? ? ? ? ? ? ?if(arr [i] > arr [j]){
? ? ? ? ? ? ? ?int temp = arr[i];
? ? ? ? ? ? ? ? arr[i] = arr[j];
? ? ? ? ? ? ? arr[j] = temp;
? ? ? ? ? ? ? System.out.println(temp);
}
2.冒泡排序: (相鄰的兩個數字去比較)
//冒泡排序
public static voidmaopao(int[] arr){
//冒泡排序。
//比較方式:相鄰兩個元素進行比較。如果滿足條件就進行位置置換。
//原理:內循環結束一次,最值出現在尾角標位置。
System.out.println("冒泡排序");
for(inti =0; i < arr.length-1; i++) {
for(intj =0; j
if(arr[j]>arr[j+1]){
inttemp = arr[j];
arr[i] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
3.二分法:
//折半查找(二分法)
public static intkm(int[] arr,intkey)
{
intmin,mid,max;
min =0;
max = arr.length-1;
mid = (max+min)/2;
while(arr[mid]!=key)
{
if(key>arr[mid])
min = mid +1;
else if(key
max = mid -1;
if(min>max)
return-1;
mid = (max+min)/2;
}
returnmid;
}
4.反轉數組:
(原理:)反轉其實就是頭角標和尾角標的元素進行位置的置換,然后在讓頭角標自增。尾角標自減。當頭角標<尾角標時,可以進行置換的動作。
//翻轉數組
public static voidreverseArray(int[] arr){
for(intstart=0,end=arr.length-1; start
{
swap(arr,start,end);
}
}
//交換位置
public? static voidswap(int[] arr,inta,intb){
inttemp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}