/*
* to change this license header, choose license headers in project properties.
* to change this template file, choose tools | templates
* and open the template in the editor.
*/package suanfa;
import util.suanfautil;
/** * 插入排序:直接插入排序+希爾排序
* * @author administrator
*/public class testcharuandxier );
system.out.println("\n排序後陣列");
printa(a);
}public static void printa(int a)
for (int i = 0; i < a.length; i++)
system.out.print(string.format("% 5d", a[i]) + "|");}}
/*** 直接插入排序 逐個加入元素,並放到適當大小處
** @param a
*/public static void charusort(int a) }}
/*** 希爾排序 d為增量陣列
*/public static void xiersort(int a, int d) }}
if (k != d.length - 1) }}
}
/*
* to change this license header, choose license headers in project properties.
* to change this template file, choose tools | templates
* and open the template in the editor.
*/package suanfa;
import util.suanfautil;
/** * 選擇排序包括直接選擇排序和堆排序
* * @author administrator
*/public class testselectorsort
/*** 直接選擇排序
** @param a
*/public static void selectsort(int a) }}
}}
/*
* to change this license header, choose license headers in project properties.
* to change this template file, choose tools | templates
* and open the template in the editor.
*/package suanfa;
import util.suanfautil;
/** * 交換排序:包括氣泡排序和快速排序
* * @author administrator
*/public class testexchangesort
/*** 氣泡排序
** @param a
*/public static void bubblesort(int a) }}
}/**
* 快速排序 選取乙個元素,將目標陣列的中小於該元素的元素放到該元素左邊,大於的放到右邊
* 為什麼這算是交換排序?冒泡是兩兩比較交換位置,而快速則是乙個比較其他元素,並根據結果交換該元素與其他元素的位置?
** @param a
* @param low 當前排序的部分在目標陣列的下限
* @param high 上限
*/public static void quicksort(int a, int low, int high)
int targetindex = low;//記錄用於作為標準的元素當前下標,預設使用下端作為標準元素
for (int i = low + 1; i <= high; i++)
}//遞迴對後面的陣列部分操作
quicksort(a, low, targetindex - 1);
quicksort(a, targetindex + 1, high);
}}
package util;
/* * to change this license header, choose license headers in project properties.
* to change this template file, choose tools | templates
* and open the template in the editor.
*//**
* * @author djh
*/public class suanfautil
return a;
}public static void printarray(int a)
for (int i = 0; i < a.length; i++)
system.out.print(string.format("% 5d", a[i]) + "|");}}
}
幾個高速排序演算法
鴿巢排序,排序位元組串 寬位元組串最快的排序演算法,計數排序的變種 將計數緩衝區大小固定,少一次遍歷開銷 速度是stl中std sort的20多倍,更重要的是實現極其簡單!缺點是需要乙個size至少等於待排序陣列取值範圍的緩衝區,不適合int等大範圍資料 c c code void pigeonho...
幾個簡單的排序演算法
排序演算法 include using namespace std void insertsort int r,int n 直接插入 void shellsort int r,int n shell排序 void selectsort int r,int n 直接選擇排序 void bubbleso...
基本的幾個排序演算法
氣泡排序 第一次迴圈完畢,最小的在最上面。逐步處理 public sealed class bubble t where t icomparable if exchange 選擇排序 public sealed class select t where t icomparable 插入排序 演算法思...