幾種排序的比較
幾種排序的比較
請優待自己。 –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
- Java幾種常用JSON庫效能比較JavaJSON
- 三種高階比較排序演算法排序演算法
- 集中式Web的幾種替代方案比較Web
- 幾種分散式呼叫鏈監控元件的實踐與比較(二)比較分散式元件
- 幾種非易失性儲存器的比較
- Java中的幾種Kafka客戶端比較介紹JavaKafka客戶端
- 堆排序和快速排序效能比較排序
- 定製排序和比較器排序排序
- 氣泡排序、歸併排序與快速排序比較排序
- Cesium 比較常用的幾個方法
- 排序演算法效能比較排序演算法
- 幾種常用的排序程式碼排序
- 2023版:深度比較幾種.NET Excel匯出庫的效能差異Excel
- 常用的比較排序演算法總結排序演算法
- 幾個比較火的BI分析工具
- HTTP協議幾個版本的比較HTTP協議
- Golang語言排序的幾種方式Golang排序
- 幾種常用的排序演算法排序演算法
- Java中陣列判斷元素存在幾種方式比較詳解Java陣列
- 利用compareTo方法進行字串比較排序字串排序
- Laravel 幾種少用的排序方式程式碼Laravel排序
- 幾種經典的排序演算法排序演算法
- 四種在Javascript比較物件的方法JavaScript物件
- 分散式中幾種服務註冊與發現元件的原理與比較分散式元件
- Python中幾種lambda排序方法Python排序
- 幾款流行的HTML5 UI 框架比較HTMLUI框架
- 簡述幾種常用的排序演算法排序演算法
- 儲存結構的種類與比較
- 幾種磁碟iops對比
- 77種資料建模工具比較
- 推薦幾款比較實用的工具,網站網站
- 幾種常見的排序演算法總結排序演算法
- 35.幾種常見的排序演算法排序演算法
- JS嵌入html的方式及各種方式的比較JSHTML