把目前學習的排序演算法記下來,方便以後複習
package sort;
//冒泡
public class ******sort ;
sort(a);
for(int i=0;ia[j+1])}}
}}
package sort;
//插入
public class insertsort ;
insertsort(a,a.length);
print(a);
}private static void print(int a)
}}
package sort;
//希爾
public class shellsort ;
shellsort(a,a.length);
print(a,a.length);
}private static void print(int a, int n) }}
}
package sort;
//快排
public class quicksort ;
quicksort(a,0,a.length-1);
for (int k : a)
}public static void quicksort(int a,int l,int h)
//若不滿足時候,即將a[h]值賦給a[l]
a[l]=a[h];
//若l和h重合且a[l]元素等於第乙個元素時,繼續向後遍歷
while(l= right)
return;
int leftend = (left + right) / 2;
sort(a, left, leftend);
sort(a, leftend + 1, right);
merge(a, left, leftend, right);
}private static void merge(int a, int left, int leftend, int right) else
}// 將剩餘的元素拷貝到臨時陣列中,實際上只會執行兩個while的其中乙個
while (rightfirst <= right)
while (left <= leftend)
// 最後將臨時陣列的元素拷貝到原陣列中left到right中
while (tem <= right)
}}
package sort;
//堆排
public class heapsort ;
heapsort(arry);
print(arry);
}private static void print(int arry)
}//如果當前節點的根節點小於最大子節點,則將最大值賦當前根節點
if(arry[k]}}}
//交換
private static void swap(int arry,int i,int j)
arry[i]=arry[i]+arry[j];
arry[j]=arry[i]-arry[j];
arry[i]=arry[i]-arry[j];
} }
學習 排序演算法
模板題 洛谷p1177 模板 快速排序 首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數...
演算法學習 排序演算法
排序演算法 平均時間複雜度 最好情況 最壞情況 空間複雜度 穩定性氣泡排序 o n 2 o n o n 2 o 1 穩定選擇排序 o n 2 o n 2 o n 2 o 1 不穩定插入排序 o n 2 o n o n 2 o 1 穩定希爾排序 o nlogn o nlogn o nlogn o 1 ...
學習排序演算法簡介
學習排序演算法簡介 學習排序 learning to rank,ltr 是一類基於機器學習方法的排序演算法。傳統經典的模型,例如基於tfidf特徵的vsm模型,很難融入多種特徵,也就是除了tfidf特徵之外,就無法融入其他種類的特徵了。而機器學習的方法很容易融合多種特徵,而且有成熟深厚的理論基礎,引...