幾種排序演算法

2021-09-01 13:27:03 字數 1016 閱讀 5834

真實開發中,用arrays.sort(arr)

1、選擇排序

選擇最小的元素放在第乙個位置,接著對不包括第乙個記錄以外的其他元素進行比較,選擇最小的記錄,直到進行比較的記錄只有乙個為止。

public static void selectsort(int arr)

}//交換兩個數,可用swap(arr,i,j)

temp=arr[i];

arr[i]=arr[k];

arr[k]=temp;

}}

或以下(效能較低,堆記憶體消耗資源,把頻繁換位置的轉移到棧記憶體中)

public static void selectsort2(int arr)}}

}

2、插入排序

假設第乙個元素有序,從第二個元素開始插入當前有序序列(所以i的初始值為1),使有序

public static void insertsort(int arr)}}

}

4、快速排序

採用「分而治之」的思想,步驟:分解,遞迴求解,合併

public class test

quicksort(a);

for(int i=0;ihigh)

return;

i=low;

j=high;

index=arr[i];

while(i=index)

if(i5、歸併排序

歸併排序是將兩個(或以上)有序表合併成乙個新的有序表,即把待排序序列分為若干個子串行,每個子串行是有序的,然後把有序子串行合併為整體有序序列。

public class mergesort ;

int res=sort(a,0,6);

print(res);

}public static void print(int arr)else

}arr[j]=temp; }}

}

幾種排序演算法

幾種比較常見的排序演算法 第一種 函式功能 雙向氣泡排序 2013.7.8 時間複雜度o n 2 include void mp int array,int n if mmax 0 沒有記錄交換,掃瞄結束 break bmax mmax for i bmax 1 i bmin i 此次掃瞄使輕氣泡上...

幾種排序演算法

本帖依據學習進度持續更新 資料結構與演算法分析 c語言描述 學到第七章,是時候該系統的學習一下排序演算法了。首先學到的是插入排序,演算法就不贅述了,書上部落格上到處都有。書上的兩個定理還不太明白 插入排序 定理7.1 n個互異數的陣列的平均逆序數是n n 1 4。定理7.2 通過交換相鄰元素進行排序...

幾種排序演算法

最近一直在複習演算法,在經歷了四次面試之後,還沒有找到適合自己的工作 暫時歇一歇,準備冬天去北京創業一條街吹泡泡去。在面試過程中主要提及的就是對於排序演算法的疑問 主要針對以下幾種排序演算法 1,氣泡排序 2,插入排序 3,選擇排序 4,希爾排序 5,歸併排序 6,快速排序 7,堆排序 對於基數排序...