Dict.CN 在線詞典, 英語學習, 在線翻譯

          都市淘沙者

          荔枝FM Everyone can be host

          統(tǒng)計

          留言簿(23)

          積分與排名

          優(yōu)秀學習網(wǎng)站

          友情連接

          閱讀排行榜

          評論排行榜

          Java排序算法

          public class Sort {

          public void swap(int a[], int i, int j) {
          ? int tmp = a[i];
          ? a[i] = a[j];
          ? a[j] = tmp;
          }

          public int partition(int a[], int low, int high) {
          ? int pivot, p_pos, i;
          ? p_pos = low;
          ? pivot = a[p_pos];
          ? for (i = low + 1; i <= high; i++) {
          ??? if (a[i] > pivot) {
          ??? p_pos++;
          ??? swap(a, p_pos, i);
          ??? }
          ? }
          ? swap(a, low, p_pos);
          ? return p_pos;
          }

          public void quicksort(int a[], int low, int high) {
          ? int pivot;
          ? if (low < high) {
          ??? pivot = partition(a, low, high);
          ??? quicksort(a, low, pivot - 1);
          ??? quicksort(a, pivot + 1, high);
          ? }

          }

          public static void main(String args[]) {
          ? int vec[] = new int[] { 37, 47, 23, -5, 19, 36 };
          ? //int vec[] = new int[] { 37, 27, 28, -5, 19, 56 };
          ? int temp;
          ? long begin;
          ? long end;
          ?
          ? //選擇排序法(Selection Sort)
          ? begin = System.currentTimeMillis();
          ? for (int k = 0; k < 1000000; k++) {
          ??? for (int i = 0; i < vec.length; i++) {
          ??? for (int j = i; j < vec.length; j++) {
          ????? if (vec[j] > vec[i]) {
          ??????? temp = vec[i];
          ??????? vec[i] = vec[j];
          ??????? vec[j] = temp;
          ????? }
          ??? }

          ??? }
          ? }
          ? end = System.currentTimeMillis();
          ? System.out.println("選擇法用時為:" + (end - begin));
          ? //打印排序好的結(jié)果
          ? for (int i = 0; i < vec.length; i++) {
          ??? System.out.println(vec[i]);
          ? }
          ? // 冒泡排序法(Bubble Sort)
          ? begin = System.currentTimeMillis();
          ? for (int k = 0; k < 1000000; k++) {
          ??? for (int i = 0; i < vec.length; i++) {
          ??? for (int j = i; j < vec.length - 1; j++) {
          ????? if (vec[j + 1] > vec[j]) {
          ??????? temp = vec[j + 1];
          ??????? vec[j + 1] = vec[j];
          ??????? vec[j] = temp;
          ????? }
          ??? }

          ??? }
          ? }
          ? end = System.currentTimeMillis();
          ? System.out.println("冒泡法用時為:" + (end - begin));
          ? //打印排序好的結(jié)果
          ? for (int i = 0; i < vec.length; i++) {
          ??? System.out.println(vec[i]);
          ? }

          ? //插入排序法(Insertion Sort)
          ? begin = System.currentTimeMillis();
          ?for (int k = 0; k < 1000000; k++) {
          ??? for (int i = 1; i < vec.length; i++) {
          ??int j = i;
          ??while (vec[j - 1] < vec[j])
          ??{
          ??? temp = vec[j];
          ??? vec[j] = vec[j - 1];
          ????????? vec[j - 1]= temp;
          ??? j--;

          ??? if (j <= 0) {
          ???break;
          ??? }
          ??}
          ??? }
          ? }
          ? end = System.currentTimeMillis();
          ? System.out.println("插入法用時為:" + (end - begin));
          ? //打印排序好的結(jié)果
          ? for (int i = 0; i < vec.length; i++) {
          ??? System.out.println(vec[i]);
          ? }

          ? //快速排序法(Quick Sort)

          ? Sort s = new Sort();
          ? begin = System.currentTimeMillis();
          ? for (int k = 0; k < 1000000; k++) {
          ??? s.quicksort(vec, 0, 5);
          ? }
          ? end = System.currentTimeMillis();
          ? System.out.println("快速法用時為:" + (end - begin));
          ? //打印排序好的結(jié)果
          ? for (int i = 0; i < vec.length; i++) {
          ??? System.out.println(vec[i]);
          ? }
          }

          }

          posted on 2006-04-25 10:41 都市淘沙者 閱讀(210) 評論(0)  編輯  收藏 所屬分類: Java Basic/Lucene/開源資料

          主站蜘蛛池模板: 房产| 崇文区| 普洱| 徐水县| 万全县| 临夏市| 砚山县| 海宁市| 延边| 克什克腾旗| 华安县| 洛宁县| 凭祥市| 行唐县| 南开区| 板桥市| 涞水县| 吴忠市| 改则县| 德钦县| 西安市| 成武县| 曲阜市| 浦城县| 迭部县| 万州区| 平遥县| 周口市| 泽州县| 三门峡市| 巴林右旗| 榕江县| 长海县| 遵义县| 巴彦淖尔市| 炉霍县| 金昌市| 洛隆县| 扎兰屯市| 建湖县| 林甸县|