|
請各位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;
} |
|