Dict.CN 在線(xiàn)詞典, 英語(yǔ)學(xué)習(xí), 在線(xiàn)翻譯

          都市淘沙者

          荔枝FM Everyone can be host

          統(tǒng)計(jì)

          留言簿(23)

          積分與排名

          優(yōu)秀學(xué)習(xí)網(wǎng)站

          友情連接

          閱讀排行榜

          評(pí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("選擇法用時(shí)為:" + (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("冒泡法用時(shí)為:" + (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("插入法用時(shí)為:" + (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("快速法用時(shí)為:" + (end - begin));
          ? //打印排序好的結(jié)果
          ? for (int i = 0; i < vec.length; i++) {
          ??? System.out.println(vec[i]);
          ? }
          }

          }

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

          主站蜘蛛池模板: 姚安县| 蒲江县| 金山区| 全南县| 长沙县| 高邮市| 浑源县| 保山市| 满洲里市| 城口县| 西青区| 龙泉市| 榆中县| 灌南县| 蕲春县| 珠海市| 华坪县| 吉木萨尔县| 安仁县| 贵阳市| 濮阳市| 陆丰市| 霍邱县| 抚顺市| 岫岩| 成安县| 平利县| 武陟县| 二手房| 息烽县| 多伦县| 习水县| 安陆市| 陕西省| 宁波市| 宁津县| 石嘴山市| 舟曲县| 西乌珠穆沁旗| 星座| 宁波市|