中央論壇 - CENTER BBS

標題: C++技術指導,急急∼ [打印本頁]

作者: rila5359    時間: 2009-10-26 17:04
標題: C++技術指導,急急∼
請各位C++高高高手,能否從以下的程式碼中找出運算更快一些的方法(cout<現在值) ,順道說明一下更另人激賞喔!!!謝謝



// Sort.cpp : 定義主控台應用程式的進入點。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int Ct;
void ListV(int list[]);
void quick_sort(int list[], int left, int right);
int main()
{
int i, test[] = {12, 30, 10, 23, 15, 19, 33, 45, 7, 21, 46, 27, 3, 29, 44};
//印出排序前
for(i=0; i<15; i++)
        cout << test << " ";
cout << endl;
Ct=0;
quick_sort(test, 0, 14);
}
void quick_sort(int list[], int left, int right){
int i, j, pivot, temp;
if (left < right){
        i = left;
        j = right + 1;
        pivot = list[left];
        do{
                do
                        i++;
                while (list < pivot);
                do
                        j--;
                while (list[j] > pivot);
                /* 若i小於j,交換i與j所指的資料 */
                if (i < j){
                        temp = list;
                        list = list[j];
                        list[j] = temp;
                }
        } while (i < j);
        /* j大於i,將list[left] 與索引j所指向的資料交換 */
        temp = list[left];
        list[left] = list[j];
        list[j] = temp;
        ListV(list);
        quick_sort(list, left, j - 1);// 排序左邊
        quick_sort(list, j + 1, right);// 排序右邊
}
}
void ListV(int list[]){
        int i;
        cout << ++Ct << " : ";
        for (i=0; i<15; i++)
                cout << list << " ";
        cout << endl;
}




歡迎光臨 中央論壇 - CENTER BBS (https://www.centerbbs.com/) Powered by Discuz! X3