排序演算法 - 快速插入排序和希爾排序
快速插入排序和希爾排序都屬於插入排序。 直接插入排序每趟將一個元素,按照其的大小直接插入到它前面已經排序的子序列中,依此重複,直到插入全部元素。 希爾排序是將序列先按一定距離進行分組然後在組內進行直接插入排序。
快速插入排序:
package com.zx.sort;
import java.util.Arrays;
public class Insertion {
public static void main(String[] args) {
int[] a={6,1,10,2,4,8,5};
sort(a);
System.out.println(Arrays.toString(a));
}
public static void sort(int[] a){
for (int i = 1; i < a.length; i++) {
int temp = a[i];
int j;
for (j = i-1; j >= 0 &&temp<a[j]; j--) {
a[j+1]=a[j];
}
a[j+1]=temp;
}
}
}
希爾排序
package com.zx.sort;
import java.util.Arrays;
public class Shell {
public static void main(String[] args) {
int[] a={5,9,3,7,66,1,5,44,12};
sort(a);
System.out.println(Arrays.toString(a));
}
public static void sort(int[] a){
for (int i = a.length/2; i > 0; i=i/2) {
System.out.println("分組間隔i:"+i);
for (int j = i; j < a.length; j++) {
int temp = a[j];
int k;
for (k = j-i; k>=0 && temp<a[k]; k = k-i) {
a[k+i]=a[k];
}
a[k+i]=temp;
}
}
}
}
相關文章
- 排序演算法(氣泡排序,選擇排序,插入排序,希爾排序)排序演算法
- #排序演算法#【2】直接插入排序、希爾排序排序演算法
- 【排序】插入類排序—(折半)插入排序、希爾排序排序
- 三種插入排序 直接插入排序,折半插入排序,希爾排序排序
- 關於js陣列的六種演算法---水桶排序,氣泡排序,選擇排序,快速排序,插入排序,希爾排序的理解。JS陣列演算法排序
- 排序演算法__希爾排序排序演算法
- 【排序演算法】- 希爾排序排序演算法
- Python八大演算法的實現,插入排序、希爾排序、氣泡排序、快速排序、直接選擇排序、堆排序、歸併排序、基數排序。Python演算法排序
- 排序演算法之希爾排序排序演算法
- php插入排序,快速排序,歸併排序,堆排序PHP排序
- 排序演算法——插入排序排序演算法
- 希爾排序使用直接插入排序、二分插入排序的C++程式碼實現演算法排序C++演算法
- PHP 排序演算法之希爾排序PHP排序演算法
- python實現氣泡排序、插入排序以及快速排序演算法Python排序演算法
- 圖形化排序演算法比較:快速排序、插入排序、選擇排序、氣泡排序排序演算法
- 對c語言系統庫函式、堆排序、希爾排序、折半插入排序、快速排序消耗時間的比較C語言函式排序
- 演算法(二)初等排序前篇[插入和希爾排序]演算法排序
- 排序演算法__折半插入排序排序演算法
- 排序(1)--插入排序和交換排序排序
- 排序演算法:Java實現希爾排序排序演算法Java
- 排序演算法總結之希爾排序排序演算法
- 排序演算法Python(冒泡、選擇、快速、插入、希爾、歸併排序)排序演算法Python
- PHP 排序演算法之插入排序PHP排序演算法
- 排序演算法之折半插入排序排序演算法
- 選擇排序和插入排序排序
- Java實現氣泡排序和插入排序演算法Java排序演算法
- 筆試之排序-直接插入排序、氣泡排序、快速排序筆試排序
- 希爾排序排序
- 【演算法】插入排序演算法排序
- PHP 常見4種排序 氣泡排序、選擇排序、插入排序、快速排序PHP排序
- 插入排序排序排序
- Array.sort 演算法原理(插入排序\快速排序in-place實現)演算法排序
- 排序演算法:插入排序演算法 PHP 版排序演算法PHP
- 排序演算法__直接插入排序排序演算法
- 排序演算法:直接插入排序排序演算法
- 排序演算法入門之「插入排序」排序演算法
- 排序演算法——直接插入排序排序演算法
- 排序演算法-直接插入排序排序演算法