GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — algorithms_and_data_structures/include/quickSort.h at master · lualgorithm/algorithms_and_data_structures

Expand file tree

/

quickSort.h

Copy path
More file actions
More file actions

Latest commit

 

History

History
History
69 lines (58 loc) · 2.39 KB
/

quickSort.h

Copy path

File metadata and controls

69 lines (58 loc) · 2.39 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/***
* _ __ ___ _
* | |/ /___ ___ _ __ / __|__ _| |_ __
* | ' </ -_) -_) '_ \ | (__/ _` | | ' \
* |_|\_\___\___| .__/ \___\__,_|_|_|_|_|
* |_|
* _
* __ _ _ _ __| |
* / _` | ' \/ _` |
* \__,_|_||_\__,_|
*
* _ _ _ _ _ _
* | | ___ __ _ _ _ _ _ /_\ | |__ _ ___ _ _(_) |_| |_ _ __ ___
* | |__/ -_) _` | '_| ' \ / _ \| / _` / _ \ '_| | _| ' \| ' \(_-<
* |____\___\__,_|_| |_||_| /_/ \_\_\__, \___/_| |_|\__|_||_|_|_|_/__/
* |___/
* Yeah! Ravi let's do it!
*/
#ifndef QUICK_SORT_H
#define QUICK_SORT_H
#include <generic.h>
namespace algo {
//Partition routine for quicksort
template <typename T>
static int __partition(T list[], int start, int end)
{
int pivotIndex = random_range(start, end);
T pivot = list[pivotIndex];
//Swapping pivot element with element at start
swap(list[start], list[pivotIndex]);
int i = start + 1;
int j = end;
while (i <= j) {
while ((i <= end) && (list[i] <= pivot)) {
++i;
}
while ((j >= start) && (list[j] > pivot)) {
--j;
}
if (i < j) {
swap(list[i], list[j]);
}
}
swap(list[start], list[j]);
return j;
}
//quickSort Routine
template <typename T>
static void quickSort(T list[], int start, int end)
{
if (start < end) {
int pivotIndex = __partition<T>(list, start, end);
quickSort(list, start, pivotIndex - 1);
quickSort(list, pivotIndex + 1, end);
}
}
}//end of namespace algo
#endif //end of quickSort.h
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.