C :: Sort Array And Save New Order Of Elements
Sep 25, 2014
So I try to sort an array with qsort and then save the new order, so this means if I have a list like:
4 3 7 2
[0] [1] [2] [3],
after sorting it becomes:
2 3 4 7
[3] [1] [0] [2] <== this is what I want to have!
Code:
void qsort_my(int *a, int l, int r, int *array_order) {
int j;
if( l < r ) {
j = split( a, l, r, array_order);
qsort_my( a, l, j-1, array_order);
qsort_my( a, j+1, r, array_order);
[Code]...
But my problem is that the list gets sorted, but the indexes do strange stuff. When I run with this list:
4 8 14 1 2 1 22 12 2 14
Pos: 0 1 2 3 4 5 6 7 8 9
I get:
1 1 2 2 4 8 12 14 14 22
Pos: 1 0 1 0 0 5 7 6 5 6
And with some printfs I noticed, the first two calls of split it is fine but then strange things start to happen, what I do wrong?
View 6 Replies
ADVERTISEMENT
Oct 17, 2014
I have to write a function called sortMe that sorts the elements of an array in numerical order from highest to lowest values (descending order) or vice versa (ascending order).
The assignment asks to: NOT re-arrange elements in the array; instead, it uses a second array, an array of indexes for the elements in the original array and then sortMe sorts the second array based on the values in the original array. A sorted version of the original array can then be produced with these sorted indexes.
Header of the function sortMe must be as shown below:
void sortMe(int array[],int sortedIndexes [], int size, char mode)
When mode is 'a', the function sorts the array in the ascending order, and when mode is 'd', the function sorts it in the descending order.
Declare and initialize the array array.
Declare the array sortedIndexes but do not initialize it. You are going to play with the array sortedIndexes in the function sortMe.
EXAMPLE:
int array[5]={3, 5,-1,10,0};
int sortedIndexes[5];
sortMe(array,sortedIndexes, 5, 'a');
After the function call, the elements of the array sortedIndexes should be: 2,4,0,1,3.
notice that the function does not e-arrange the elements in the array.
Code:
#include <iostream>
using namespace std;
void sortMe(int[], int, char);
void main() {
int arr[6] = { 14, -5, 5, 0, 22, -99 };
[code]...
how to use the other array.
View 5 Replies
View Related
Jul 6, 2013
I am writing a function called swap that sorts the elements of an array in order from highest to lowest values where they descend and ascend. A particular thing about this function is that swap does NOT re-arrange elements in the array so it just uses a second array of indexes for the elements in the original array and then swap sorts the second array based on the values in the original array. A sorted version of the original array can then be produced with these sorted indexes. You can declare and initialize the original array without any user input.
For example, int arr[10] = {1, 5, 22, 14, 6, -5, 7, 9, 12, 15 };
Header of the function swap must be as shown below: void swap(int array[],int swapedIndexes [], int size, char mode) When mode is 'a', the function sorts the array in the ascending order, and when mode is 'd', the function sorts it in the descending order. int swappedIndexes[5];swap(array,swappedInde… 5, 'a');
So far I have this code that randomly generates arrays of 10 elements and I found the max and min, but I am confused on what to do about the swapping part? Also, how to make the numbers ascend or descend in numerical order?? Here is what i have done so far:
#include<ctime>
#include <iostream>
using namespace std;
int min(int [],int);
void max(int [],int , int &);
void main()
{ srand(time(0));
//1-declare
[Code] .....
View 1 Replies
View Related
Mar 20, 2014
I have a pre-declared array which sorts strings to it's alphabetic order and want to change it so it reads from stdin.
char *array[] = {"aaa", "ccc", "bbb", "ddd"}
I tried doing something like this:
for (i = 0; i < length; i++)
scanf("%s", &array[i]);
I just can't bring it to work. Another thing is, the input is a a bunch of strings separated by commas and ends with a period. Since I have to make a working C model which gets translated to assembly language later on I can't use functions like strtok.
View 6 Replies
View Related
Apr 11, 2014
I'm writing a program that will implement BubbleSort and MergeSort and time them as they sort a dynamic array with N elements. These are the instructions on what my main.cpp file should do.
main.cpp
Include all needed libraries for timing and random number generation while the number of element, N, is less than 100001 repeat the following.
create an array with N (initially 10) random elements
sort the same array with Bubble and Merge sort
time how long it takes each algorithm in microseconds (see example below)
Increase N by a factor of 10 (N *= 10)
Hint: you may want to put your merge sort object on the heap and delete it with every iteration of this loop
And this is what I have so far for my main.cpp
#include <iostream>
#include <sys/time.h>
#include <ctime>
#include <cstdlib>
#include <stack>
#include <iomanip>
#include "BubbleSort.h"
//#include "MergeSort.h"
[Code] .....
One of the errors that I'm running into is that I'm not sure how to correctly call the function I think?
View 3 Replies
View Related
Oct 29, 2014
I am trying to write a program which will sort an array of numbers into ascending order, here is my code
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int array[]={1, 5, 17, 3, 75, 4, 4, 23, 5, 12, 34, 34, 805, 345, 435, 234, 6, 47, 4, 9, 0, 56, 32, 78};
[Code] .....
This compiles fine but when I run the .exe for the first time an error message comes up saying program has stopped working. If I run the program again without recompiling it seems to work as expected.
View 2 Replies
View Related
Mar 10, 2015
i have a list
ID | Location | Quantity
1 | 2 | 5
2 | 3 | 10
3 | 4 | 8
i want the order to be in ascending order by Quantity so it should produce this
ID | Location | Quantity
1 | 2 | 5
3 | 4 | 8
2 | 3 | 10
View 4 Replies
View Related
Jan 30, 2013
I have a code right here that i worked on with my teacher. I can say that he did most of the work. Basically i'm sorting elements in a dictionary order.
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXWORD 50 // max word size
void swap(char **p, char **q) // Q1: Why do I need a double pointer?
[Code] ....
View 2 Replies
View Related
Sep 29, 2013
Trying to sort matrix such that it has value in ascending order.
But outcome is coming :
Code:
Matrix after sorting :
2,2,2,2,
2,2,2,2,
2,2,2,2,
2,2,2,2,
Can't find whats wrong.
[Code]....
View 2 Replies
View Related
Feb 19, 2014
Write a program that orders three double numbers by increasing value. The program should include a function named sort3 that takes three double * arguments (pointer to double). The function prototype is void sort3(double *x, double *y, double *z); The function should reorder the values pointed to by its arguments so that after the call sort3(&x, &y, &z); the numbers satisfy . Your program should input data and print results using the following format:
Enter three numbers: 4.7 1.4 3.2
The ordered sequence is: 1.4 3.2 4.7
And here is my program: C code - 32 lines - codepad
I am getting a lot of errors when I run it through GCC. I can only use pointers.
View 4 Replies
View Related
Jan 22, 2014
so my program reads a file type which looks like this...
Michelle 71
Marcie 99
David 42
Rebecca 83
Jonathan 79
Matthew 77
Rose 7
Melanie 75
Kimberly 73
Roger 74
Scott 76
Bradley 77
Drextell 10
Heidi 70
Alan 68
Pearl 13
Jeanne 43
Heber 55
Here is whats in the header of the class
class StudentStat {
private:
int Size;
[Code].....
So as of right now the names are stored in a Names string array and the scores are saved in a Score int array. So my question is where do I begin with my bubble sort? I need it to put the scores in descending order so from greatest score to lowest but I need the Names in the string array to still be connected to the number from the list. Never done a bubble sort before so not sure where to begin.
View 1 Replies
View Related
Jun 1, 2013
Let assume that there is an array of integer numbers in the range from 1 to N that are located in the ascending order. For example
#include <iostream>
#include <numeric>
#include <iterator>
int main() {
const size_t N = 20;
[Code] .....
How can it be converted using some one standard algorithm such a way that the resulted sequence would look like
1 3 5 7 9 11 13 15 17 19 20 18 16 14 12 10 8 6 4 2
View 19 Replies
View Related
Jun 20, 2014
I am having trouble sorting out a list of names in c. I have code for sorting the names, but when I go to print them out they still are in the same order as they were at the beginning so something isnt right. So the function that I need is the sort_data function.
Code:
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#define MAX_STRING_LEN 25
void insert_data(char **strings, const char* filename, int size);
void allocate(char ***strings, int size);
[Code] ....
The list that I am reading in is as follows:
matt
susan
mark
david
aden
phil
erik
john
caden
mycah
So I need to get this list in alphabetical order, but when I run my code and print out this list after I run the sort function, they are still in this order.
View 5 Replies
View Related
Feb 1, 2014
I'm stuck again on a homework problem. I enter 9 8 7 6 5 4 3 2 1 in to the program when it asks me to. I print out the array (just before the bubble sort routine) and I get the numbers in descending order just as expected. So going into bubble sort routine, the numbers are correct.
I should get 1 2 3 4 5 6 7 8 9 as output.
But I get 1 2 3 4 4 5 6 7 8
Code:
#include <stdio.h>
#include <stdlib.h>
int main() {
int max_size = 20; // max size of array of numbers
int numbers[max_size]; // array for numbers
[Code] .....
View 4 Replies
View Related
Jul 27, 2014
I am pretty much new in C++ programming and i have to do stack exercises. Writing a simple code of sorting the elements in ascending order in a stack.
View 6 Replies
View Related
Feb 17, 2013
Question: What is the efficiency and big O of the selection sort algorithm when the input happens to already be in nondecreasing order?
Answer: Not sure... since the input is in nondecreasing order, such that example 0, 1, 1, 2, 3, 4, 4, 5 then there will be no swap, Just comparisons of emelemts. So it is big O of n
View 2 Replies
View Related
Jan 25, 2014
So I need to read in a .txt file and sort it by SSN in ascending order. How to start this but here's what I have so far:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
struct Information {
char name[25];
long SSN;
[Code] .....
Also here is the contents of the .txt file:
Matthews,Jocob
459237148
19
3930 4th Blvd, Yourcity, NJ 88710
......
and so on.
View 1 Replies
View Related
Apr 18, 2013
At the line number 65 that's my sort method first i sum up all the value in the nodes after that i want to sort the Nodes In ascending order but the method is not working ...
#include <iostream>
#include <conio.h>
using namespace std;
// Node Class
[Code] ....
View 3 Replies
View Related
Oct 2, 2013
A link list problem, i need some how to sort and print out an object by surname in alphabetical order.
i have a try to do that by this code not working for swamping i should i go about that?
May another way of swapping using pointer instead?
void functions::printdata() {
for(node* temp1=head;temp1!=NULL;temp1=temp1->next) {
for(node* temp2=head;temp2!=NULL;temp2=temp2->next) {
[Code]...
View 1 Replies
View Related
Jan 24, 2014
I'm trying to write a program to sort 2 ints on ascending/descending order, using function pointers. here is my code so far:
Code:
#include <stdio.h>
#include <stdlib.h>
int min_el(int a,int b);
[code]....
View 6 Replies
View Related
Jan 8, 2013
Assignment:
1. Choose what to enter NUMBER or LETTER.
2. Choose type of sorting ASCENDING or DESCENDING.
#include<iostream.h>
#include<conio.h>
main() {
int x,y,z;
cout<<"choose Number or letter
1.number
2.Letter";
[Code] ....
View 9 Replies
View Related
Sep 13, 2014
I need to make singly and doubly linked list classes that can insert elements. Once the lists are created, I need to order the linked list elements according to a certain pattern.
order2 pattern:
input: 0 1 2 3 4 5 6 7
output: 1 0 3 2 5 4 7 6
order3 pattern:
input: 0 1 2 3 4 5 6 7 8 9 10 11
output: 2 1 0 5 4 3 8 7 6 11 10 9
sequence order pattern:
input: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
output: 1 0 4 3 2 8 7 6 5 13 12 11 10 9
reverse pattern:
input: 0 1 2 3 4 5 6 7 8 9
output: 9 8 7 6 5 4 3 2 1 0
My instructor has given the description of the required classes in a file interfaces01.h as:
#pragma once
#include <cstdlib>
struct ISingleNode {
ISingleNode() {}
virtual ~ISingleNode() {}
virtual void setValue(int value) = 0;
virtual int getValue() = 0;
[Code] ....
However when I am compiling these files in vs 2013 I am getting the error: cannot open include file Singlenode.h,Singlelist.h.
Also I am not too sure about the sorting and reverse logic. How can I implement these logics.
View 1 Replies
View Related
Mar 24, 2013
I am supposed to make a program that take a list of integers from the user and to delete the smallest part of it in order to make it sorted in non decreasing order ..
example : input : 1 2 3 4 5 8 7 6 7 8 9
output : 1 2 3 4 5 6 7 8 9 ( delete : 8 7 )
I need a code that use a technique similar to the merge function to achieve linear time ..
this code works but it is in quadratic time :
int main () {
cout<<"Enter a list of numnbers ending with the sentinel -999:"<<endl;
int A[1000];
int n = 0;
int x;
cin>>x;
while(x!=-999)
[Code] ....
View 4 Replies
View Related
Feb 11, 2015
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
class Player {
private:
char name[20];
int score;
[Code] .....
View 5 Replies
View Related
Feb 20, 2014
I am trying to use smart pointers to sort and re-link potentially large data elements. I have defined a class in my code for smart pointers, as listed below:
template <typename T>
class sptr {
public:
sptr(T *_ptr=NULL) { ptr = _ptr; }
[Code] ....
The object I'm trying to sort is a singly-linked list containing class objects with personal records (i.e., names, phone numbers, etc.). The singly-linked list class has an iterator class within it, as listed below.
template <class T>
class slist {
private:
struct node {
node() { data=T(); next=NULL; }
[Code] .....
The following is my function within my list class for "sorting" using the smart pointers.
template <typename T>
void slist<T>::sort(){
vector< sptr<node> > Ap(N); // set up smart point array for list
//slist<T>::iterator iter = begin();
node *ptrtemp = head->next;
[Code] .....
I must have a bad smart pointer assignment somewhere because this code compiles, but when I run it, std::bad_alloc happens along with a core dump. Where am I leaking memory?
View 6 Replies
View Related
Aug 19, 2013
Example radix sort function to sort an array of 64 bit unsigned integers. To allow for variable bin sizes, the array is scanned one time to create a matrix of 8 histograms of 256 counts each, corresponding to the number of instances of each possible 8 bit value in the 8 bytes of each integer, and the histograms are then converted into indices by summing the histograms counts. Then a radix sort is performed using the matrix of indices, post incrementing each index as it is used.
Code:
typedef unsigned long long UI64;
typedef unsigned long long *PUI64;
PUI64 RadixSort(PUI64 pData, PUI64 pTemp, size_t count) {
size_t mIndex[8][256] = {0};
/* index matrix */
PUI64 pDst, pSrc, pTmp;
size_t i,j,m,n;
UI64 u;
[Code]....
View 9 Replies
View Related