原想將一些常見排序演算法做個小的android demo,以供偶爾檢視,後來發覺不太必要,故只記錄一些核心演算法,以便查詢。ps:此處均預設排序從小到大,序列不為空。
1、選擇排序
//1 選擇排序
public void select(int nums)
}temp = nums[size - 1 -i];
nums[size - 1 -i] = nums[k];
nums[k] = temp;
}}
2、氣泡排序
//2 氣泡排序
public
void
bubble(int nums)}}
}
3、直接插入排序
//3 插入排序
public
void
insert(int nums)
nums[j] = temp;
}}
4、希爾排序
//4 希爾排序
public
void
shell(int nums)else
}nums[j] = temp;}}
}
5、快速排序
//5 快速排序
public
intgetmiddle(int nums , int low , int high)
nums[low] = nums[high];
while (lowreturn low;
}public
void
quick(int nums , int low , int high)
}public
void
sort(int nums)
}
在此補充乙個二分查詢演算法,二分查詢法前提序列有序,折半查詢
public
intbinary(int nums,int x)
return -1;
}
常見排序演算法小結
常見排序演算法時間和複雜度如下圖 氣泡排序核心 對於陣列a n for int i 0 i 改進 即使當發現陣列已經有序是跳出迴圈,使用方法就是在設定乙個flag,發現第二層的for迴圈一次都沒有進行交換就是表明陣列已經是有序的。時間複雜度o n 2 插入排序有3種,直接插入排序,二分插入排序,希爾...
常見的排序演算法小結
一 根據時間複雜度對排序演算法進行分類,其中n為資料樣本個數 1 複雜度為平方階o n 2 冒泡 選擇 插入排序 2 複雜度為o nlogn 快速 堆 歸併排序 3 複雜度為o n 1 希爾排序,其中 是介於0到1之間的 4 線性階o n 桶 箱 基數排序 二 排序演算法穩定性分析 1 穩定性的演算...
java常見排序演算法
package algorithms public class arraydemo int max getmax arr arr sort2 arr int start 0 int end arr.length 1 sort3 arr,start,end print arr public stati...