幾種排序的比較
幾種排序的比較
請優待自己。 –Ruider
借鑑別人的優秀總結,推薦博文
快速排序
import java.security.PublicKey;
/*
用最簡單的方式解釋最快排序演算法。。。。以及程式碼的展示。。
演算法思路:
1.定一個基數,基數就是一組數中的一個基準數,比如[ 1 2 3 4 5]中選擇1作為基數
2.定義i從陣列的結尾向前遍歷,找到小於基數的數字,找到就停
3.定義j從陣列的頭部開始遍歷,尋找大於基數的值,找到就停。
4.判斷i是否大於j,當i>j時,交換i,j位置的值。
5.繼續遍歷,直到i==j,此時交換基數與i的位置
6.此時基數左邊是小於基數的值,右邊是大於基數的值。
7.將基數 左右兩邊的陣列分割,形成兩個小陣列,繼續前面的步驟,處理這兩個小陣列。
關鍵字:基數,先左後右遍歷,分割
程式碼如下:
* */
public class QuickSort {
public static void quickSort(int[] arr,int low,int high){
if(low>high)
return;
int i,j,temp;
i=low; j=high;
temp=arr[low];
while(i<j){
while(arr[j]>=temp&&i<j){ //j從尾部開始向前迭代,直到找到小於基數的值,保證i<j
j--;
}
while(arr[i]<=temp&&i<j){ //i從頭部開始向後迭代,直到找到大於基數的值,保證i<j
i++;
}
if(i<j){
int a=arr[i];
arr[i]=arr[j];
arr[j]=a;
}
}
arr[low]=arr[i]; //將基數放到分割線位置
arr[i]=temp;
quickSort(arr, low, j-1);
quickSort(arr, j+1, high);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr={1,3,6,8,4,6,2};
quickSort(arr, 0, arr.length-1);
for(int i:arr)
System.out.println(i);
}
}
選擇排序
選擇排序是在所有數中按照角標找到更小的值
public static int[] selectSort(int[] array){
if(array==null||array.length==0){
return;
}
int length=array.length
if(length==1){
return array;
}
int min=0;
for(int i=0;i<length-1;i++){
min=i;
for(int j=i+1;j<length;j++){
if(array[min]>array[j]){
min=j;
}
}
if(min!=i){
int temp=array[i];
array[i]=array[min];
array[min]=temp;
}
}
}
相關文章
- 分割陣列的幾種方法比較陣列
- 【MyBatis】幾種批量插入效率的比較MyBatis
- 幾種中文字型的比較
- 幾種常用資料庫比較資料庫
- ETL 幾種工具的比較(Kettle,Talend,Informatica )ORM
- Javascript中的幾種繼承方式比較JavaScript繼承
- 三種高階比較排序演算法排序演算法
- 集中式Web的幾種替代方案比較Web
- 幾種計算圓周率的軟體比較
- 幾種分散式呼叫鏈監控元件的實踐與比較(二)比較分散式元件
- Java幾種常用JSON庫效能比較JavaJSON
- 幾種作業系統mt命令比較作業系統
- 5種排序演算法效能比較總結排序演算法
- 幾種非易失性儲存器的比較
- UITableView設定全屏分隔線的幾種方法比較UIView
- Java中的幾種Kafka客戶端比較介紹JavaKafka客戶端
- java集合遍歷的幾種方式總結及比較Java
- 堆排序和快速排序效能比較排序
- 定製排序和比較器排序排序
- 幾種常見的中文分詞包的分析與比較中文分詞
- 幾種遠端呼叫方式,大家感覺哪種比較好?
- 幾種儲存介面協議全面比較(轉載)協議
- 排序(3)--各類排序演算法的比較排序演算法
- 幾種任務排程的 Java 實現方法與比較Java
- 氣泡排序、歸併排序與快速排序比較排序
- 幾個分析函式的比較函式
- 幾種常用的排序程式碼排序
- 排序演算法效能比較排序演算法
- 學習筆記--- 比較排序之堆排序筆記排序
- Java 中日期的幾種常見操作 —— 取值、轉換、加減、比較Java
- 幾個比較火的BI分析工具
- HTTP協議幾個版本的比較HTTP協議
- oracle幾個比較有用的語句Oracle
- 常用的比較排序演算法總結排序演算法
- Golang語言排序的幾種方式Golang排序
- 幾種常用的排序演算法排序演算法
- Shell中字串排序的幾種方法字串排序
- 七種WebSocket框架的效能比較Web框架