librarySort(
int*index,
intn) {
5 intlib_size, index_pos,
9 booltarget_lib, *numbered;
11 for(
inti = 0; i < 2; i++) library[i] =
new int[n];
13gaps =
new int[n + 1];
14numbered =
new bool[n + 1];
19library[target_lib][0] = index[0];
21 while(index_pos < n) {
23 int insert= std::distance(
25std::lower_bound(library[target_lib],
26library[target_lib] + lib_size, index[index_pos]));
30 if(numbered[
insert] ==
true) {
31 intprov_size = 0, next_target_lib = !target_lib;
35 for(
inti = 0; i <= n; i++) {
36 if(numbered[i] ==
true) {
37library[next_target_lib][prov_size] = gaps[i];
43library[next_target_lib][prov_size] =
44library[target_lib][i];
49target_lib = next_target_lib;
50lib_size = prov_size - 1;
52numbered[
insert] =
true;
53gaps[
insert] = index[index_pos];
58 intindex_pos_for_output = 0;
59 for(
inti = 0; index_pos_for_output < n; i++) {
60 if(numbered[i] ==
true) {
62index[index_pos_for_output] = gaps[i];
63index_pos_for_output++;
68index[index_pos_for_output] = library[target_lib][i];
69index_pos_for_output++;
74 for(
inti = 0; i < 2; ++i) {
81 intindex_ex[] = {-6, 5, 9, 1, 9, 1, 0, 1, -8, 4, -12};
82 intn_ex =
sizeof(index_ex) /
sizeof(index_ex[0]);
84librarySort(index_ex, n_ex);
85std::cout <<
"sorted array :"<< std::endl;
86 for(
inti = 0; i < n_ex; i++) std::cout << index_ex[i] <<
" ";
87std::cout << std::endl;
node * insert(node *root, int item)
inserts a new element into AVL tree
int main()
Main function.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4