Click here to Skip to main content
15,877,553 members
Home / Discussions / C#
   

C#

 
QuestionWhy is Array.Sort() slower if I use my own comparer? Pin
robinsc16-Feb-15 1:09
robinsc16-Feb-15 1:09 
AnswerRe: Why is Array.Sort() slower if I use my own comparer? Pin
Rob Philpott16-Feb-15 2:06
Rob Philpott16-Feb-15 2:06 
GeneralRe: Why is Array.Sort() slower if I use my own comparer? Pin
robinsc16-Feb-15 2:20
robinsc16-Feb-15 2:20 
GeneralRe: Why is Array.Sort() slower if I use my own comparer? Pin
Rob Philpott16-Feb-15 2:26
Rob Philpott16-Feb-15 2:26 
GeneralRe: Why is Array.Sort() slower if I use my own comparer? Pin
robinsc16-Feb-15 2:35
robinsc16-Feb-15 2:35 
SuggestionRe: Why is Array.Sort() slower if I use my own comparer? Pin
Richard Deeming16-Feb-15 8:20
mveRichard Deeming16-Feb-15 8:20 
GeneralRe: Why is Array.Sort() slower if I use my own comparer? Pin
Rob Philpott16-Feb-15 8:22
Rob Philpott16-Feb-15 8:22 
GeneralRe: Why is Array.Sort() slower if I use my own comparer? Pin
robinsc16-Feb-15 21:57
robinsc16-Feb-15 21:57 
In the end I found the source code of the c++ quicksort implementation in clr and it's really very similar to the quicksort algorithm I used in c# (see node below).
So I guess one should switch to c++ if it comes to sorting big structs as well and the average performance difference between c# and c++ of a few percenant points does not hold for this kind of operations. For everybody who tries to find the answer to the same question, here is the code they use:

static void QuickSort(KIND keys[], KIND items[], int left, int right) {
WRAPPER_CONTRACT;

// Make sure left != right in your own code.
_ASSERTE(keys != NULL && left < right);
do {
int i = left;
int j = right;
KIND x = keys[i + ((j - i) >> 1)];
do {
while (keys[i] < x) i++;
while (x < keys[j]) j--;
_ASSERTE(i>=left && j<=right);
if (i > j) break;
if (i < j) {
KIND key = keys[i];
keys[i] = keys[j];
keys[j] = key;
if (items != NULL) {
KIND item = items[i];
items[i] = items[j];
items[j] = item;
}
}
i++;
j--;
} while (i <= j);
if (j - left <= right - i) {
if (left < j) QuickSort(keys, items, left, j);
left = i;
}
else {
if (i < right) QuickSort(keys, items, i, right);
right = j;
}
} while (left < right);
}
AnswerRe: Why is Array.Sort() slower if I use my own comparer? Pin
Dave Kreskowiak16-Feb-15 2:56
mveDave Kreskowiak16-Feb-15 2:56 
GeneralRe: Why is Array.Sort() slower if I use my own comparer? Pin
robinsc16-Feb-15 3:23
robinsc16-Feb-15 3:23 
QuestionConsuming SAP Web Service in C# Pin
Amoxtli15-Feb-15 22:40
Amoxtli15-Feb-15 22:40 
GeneralRe: Consuming SAP Web Service in C# Pin
Richard MacCutchan15-Feb-15 23:05
mveRichard MacCutchan15-Feb-15 23:05 
GeneralRe: Consuming SAP Web Service in C# Pin
Amoxtli15-Feb-15 23:18
Amoxtli15-Feb-15 23:18 
GeneralRe: Consuming SAP Web Service in C# Pin
Richard MacCutchan15-Feb-15 23:35
mveRichard MacCutchan15-Feb-15 23:35 
GeneralRe: Consuming SAP Web Service in C# Pin
Amoxtli15-Feb-15 23:41
Amoxtli15-Feb-15 23:41 
GeneralRe: Consuming SAP Web Service in C# Pin
Amoxtli16-Feb-15 1:18
Amoxtli16-Feb-15 1:18 
GeneralRe: Consuming SAP Web Service in C# Pin
Richard MacCutchan16-Feb-15 1:20
mveRichard MacCutchan16-Feb-15 1:20 
GeneralRe: Consuming SAP Web Service in C# Pin
Amoxtli16-Feb-15 1:25
Amoxtli16-Feb-15 1:25 
QuestionCan PdfFileWriter Support Chinese? Pin
gzhmrj15-Feb-15 22:23
gzhmrj15-Feb-15 22:23 
AnswerRe: Can PdfFileWriter Support Chinese? Pin
OriginalGriff15-Feb-15 22:26
mveOriginalGriff15-Feb-15 22:26 
Questioni need to convert merge sort algorithm to accept arrays then sort them this is the code I need to modify Pin
Member 1135438615-Feb-15 20:31
Member 1135438615-Feb-15 20:31 
AnswerRe: i need to convert merge sort algorithm to accept arrays then sort them this is the code I need to modify Pin
OriginalGriff15-Feb-15 20:42
mveOriginalGriff15-Feb-15 20:42 
GeneralRe: i need to convert merge sort algorithm to accept arrays then sort them this is the code I need to modify Pin
Member 1135438616-Feb-15 11:44
Member 1135438616-Feb-15 11:44 
GeneralRe: i need to convert merge sort algorithm to accept arrays then sort them this is the code I need to modify Pin
OriginalGriff16-Feb-15 23:24
mveOriginalGriff16-Feb-15 23:24 
QuestionExecute cobol code using c#.net Pin
Member 1144452115-Feb-15 20:04
Member 1144452115-Feb-15 20:04 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.