C :: Implementing Recursive Merge Sort - Forbid Warning

Jul 8, 2013

I am trying to implement a recursive merge sort, and I've just barely begun. I am getting some warnings:

merge_sort.c:15: warning: ISO C90 forbids variable-size array 'left'
merge_sort.c:15: warning: ISO C90 forbids mixed declarations and code

Code:
#include <stdio.h>
#include <string.h>

static void
merge_sort(int *a, int n)

[Code] ....

I am using gcc 4.2.1 and I am compiling with -Wall and -pedantic.

View 6 Replies


ADVERTISEMENT

C++ ::  Recursive Palindrome Test With Merge Sorting

May 28, 2013

My assignment is to make a program that tests whether something is a Palindrome or not using a recursive function. Also, in order to test what type the Palindrome is (if it is indeed a palindrome) I'll need to merge sort it. Now alphabet characters, spaces, and numbers are all allowed, as long as the spaces line up with the spaces in the original input. And yes this is user inputted. I can show you what I've got so far and then I'll tell you what my problem is.

#include <iostream>
#include <istream>
#include <string>
#include <string.h>
#include <conio.h>
using namespace std;
/************To Test if Palindrome*******************/
bool IsPalindrome(char *str, int size) {
if( str[0] == str[size-1]);

[Code] .....

Now my problem is that I can't seem to get the test to work correctly. Since the word is user inputted I don't have any way of knowing the size so that kind of complicates it a little bit. The other thing is I was told by my professor that I need a boolean flag to make it work, and I need to set the value to the return of the IsPalindrome function. I'm not sure how to do that. I also don't haven't been able to add in the MergeSort yet, so the Order and Type don't really work correctly because I'm not sure how to get int len for it. (len is length)

View 3 Replies View Related

C++ :: Implementing Recursive Function To Print Linked List In Reverse Order

Nov 29, 2014

Implement a recursive function named void printBack(DoublyLinkedNode<T>* node) for the class DoublyLinkedCircularList which will print out the elements in the list from back to front. The function is initially called with the first node in the list. You may not make use of the previous(prev) links

This is my solution where I got 2 out of a possible 3 marks:

template<class T>
void DoublyLinkedCircularList<T> :: printBack(DoublyLinkedNode<T>* node) {
if(node->next == NULL) //Correct- 1 mark
return 0;
else
printBack(node->next); //Correct - 1 mark
cout << current-> element << " ";
}

View 3 Replies View Related

C :: Merge Sort Algorithm

Dec 24, 2014

i can't seem to get this merge sort to work. running through gdb though;

Code:

*Filename: mergeSort.c
*Usage: This implements merge sort algorithm to sort and array of numbers.
*/
#include <stdio.h>
#include <stdlib.h>
}

[code]...

View 2 Replies View Related

C :: Subarrays For Merge Sort

May 15, 2013

Code:
/* Mergesort: Use merge() to sort an array of size n */
#include <stdio.h>
#include <stdlib.h>
void mergesort(int key[], int n) {
int j, k, m, *w;
for (m = 1; m < n; m *= 2)

[Code] .....

Question : Modify mergesort() so that it can be used with an array of any size, not just with a size that is a power of two. Recall that any positive integer can be expressed as a sum of powers of two. For example,

27 = 16 + 8 + 2 + 1

Consider the array as a collection of subarrays of sizes that are powers of two. Sort the subarrays and then use merge() to produce the final sorted array.

I tried so many algorithms and all failed!! What i dont know is how to create subarrays ?

View 3 Replies View Related

C++ :: Merge Sort For Large N

Apr 8, 2013

My programs gives a segmentation fault for large n (n=9999999). It works fine for small n. Where n = total numbers to sort

List<long>* Merge(List<long> *ParentList)
{
if(ParentList->length()==1)
{

[Code]....

View 4 Replies View Related

C++ :: Merge Sort - Top Down Versus Bottom Up

Apr 28, 2014

I tried to keep the coding style as similar as possible. I tested these with 4 million (4x1024x1024) 64 bit unsigned integers, Visual Studio 2005, 64 bit mode, Win XP X64, Intel 2600K 3.4ghz cpu. The average time for top down = 3.7 seconds, bottom up = 3.5 seconds.

Code: // tsorttd.h - top down merge sort
template <class T>
T * TopDownMergeSort(T a[], T b[], size_t n) {
TopDownMergeSortAtoA(a, b, 0, n);

[Code]....

View 13 Replies View Related

C++ :: Minimalist Bottom Up Merge Sort

May 3, 2013

Code:
typedef vector<int> LIST; // LIST can be a vector of any comparable type
static LIST merge_sort(LIST &linp){
size_t i, width;
LIST lout(linp.size()); // second list for output

[Code] ....

View 14 Replies View Related

C :: Merging Two Arrays In Merge Sort

Apr 9, 2014

I have been trying to merge the two arrays in merge sort but I am not able to do so. I am getting only half of the array.

Code:
int i,j,k,a[100],n,temp;
printf("Enter array size: ");
scanf(" %d",&n);
printf("
Enter the numbers:");

[Code] ....

View 2 Replies View Related

C :: Implement Merge-Sort Algorithm?

Jul 24, 2013

I'm trying to implement the Merge-Sort algorithm. I only had the pseudocode for it and have some problems coding this into C.

I have only covered pointers recently and I tried using them, which did not work. I started with the code for the merge algorithm and only used a 10 element array, which was already divided into two sorted subarrays:

Code:
#include <stdio.h>#include <stdlib.h>
int main() {
int a[5]={1,5,6,10,13}, b[5]={4,8,9,10,14},c[10], *i,*j,k;

[Code].....

This is the result that I get:

Code: 1 4 5 6 8 9 10 10 13 0

So I think the problem occurs because in the second to last loop i is incremented again, but the end of the array is already reached, and the compiler has no element a[6] to compare with *j in the last run of the loop. Is there generally a better way to implement Merge?

View 10 Replies View Related

C++ :: Merge Two Linked Lists Without Sort

Feb 19, 2013

i write code that's merge two linked list without sort ....

node * merage (node * list1, node * list2) {
// check witch list is empty
if (list1 == NULL) return list2;
if (list2 == NULL) return list1;
if ( list1 == NULL && list2 == NULL ) return NULL;

[Code].....

View 1 Replies View Related

C++ :: Merge Sort And Linked Lists

Mar 15, 2014

I am getting an error trying to convert from nodeType<Type> to nodeType<Type>* in my recursiveSort function and why this is happening.

#ifndef H_linkedListIterator
#define H_linkedListIterator
#include <iostream>
template <class Type>
struct nodeType {
Type info;

[Code] ....

View 7 Replies View Related

C++ :: Merge Sort Between 2 File With Thread

May 29, 2014

// mergefile2norecreation.cpp : definisce il punto di ingresso dell'applicazione console.
//
// Filemerge.cpp : definisce il punto di ingresso dell'applicazione console.
//

#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[]) {

TCHAR inputfile1[MAX_PATH];
TCHAR inputfile2[MAX_PATH];
TCHAR outputfile[MAX_PATH];

[Code] .....

There is a smart way to make a merge sort between 2 file already ordered? I had try it ,and above there is my result,it works but i think that it's possible to do it in a smart way...

View 4 Replies View Related

C++ :: Merge And Sort List Of Strings?

Feb 18, 2014

I am looking for a function or algorithm to best merge and sort similar content between two lists of unordered strings each in individual files (very large files ~200mb each).

For example, these files have a common first string and are merged based on them:

File 1:
red, apple
green, truck
blue, car
yellow, ball
orange, candy

File 2:

gold, necklace
green, tree
yellow, sticker
blue, water
red, bag

I am looking for the following output:

Output:

red, apple, bag
green, truck, tree
blue, car, water
yellow, ball, sticker
orange, candy
gold, necklace

View 6 Replies View Related

C/C++ :: Merge-Sort With X And Y Coord From File

Apr 17, 2014

So I have a file with 2 float numbers like this

0.041631 0.176643
0.364602 0.091331
0.092298 0.487217
0.526750 0.454433
0.233178 0.831292
0.931731 0.568060
0.556094 0.050832
0.767051 0.018915
0.252360 0.298197
0.875981 0.531557

I would like to place the first column in one array and second in another. I am using the merge sort and merge algorithm from my book to sort the first column (x-coord) in descending order and the second column (y-coord) in ascending order. The output would look like this.

(where, x, y)
6: 0.931731 0.018915
10: 0.875981 0.050832
8: 0.767051 0.091331
7: 0.556094 0.176643
4: 0.526750 0.298197
2: 0.364602 0.454433
9: 0.252360 0.487217
5: 0.233178 0.531557
3: 0.092298 0.568060
1: 0.041631 0.831292

I am ignoring the where(line number) for now. The error I get is: cannot convert 'points_struct*' to 'int*' for argument '1' to 'int mergesort(int*, int, int)'.

So my question is how to get my points_struct arrays to work with the algorithm I have from book. Here is what I have so far.


#include<iostream>
#include<fstream>
using namespace std;

[Code].....

View 4 Replies View Related

C :: Merge - Array Sort On Linked List

Oct 15, 2014

This is in response to the bubble sort and selection sorts for linked lists. On my system, (Intel 2600K, 3.4ghz), it sorts a list with 4,194,304 nodes containing 64 bit unsigned integers in about 1.05 seconds.

Code:
#define NUMLISTS 32
/* number of lists */
typedef unsigned long long UI64;
typedef struct NODE_{
struct NODE_ * next;
UI64 data;

[Code]....

View 6 Replies View Related

C++ :: In Place Merge Sort For Linked List

Oct 3, 2014

This is in-place merge sort, for merge function.

LinkedListNode::LinkedListNode(int value) {
this->next = NULL;
this->value = value;
}
LinkedListNode *mergeSortedLinkedLists(LinkedListNode *firstList, LinkedListNode *secondList)

[Code] ....

View 3 Replies View Related

C/C++ :: Sorting Deck From File With Merge Sort

Nov 27, 2014

I'm trying to sort a deck from file with merge sort.I have all my code working except merge sort function .

#include<iostream>
#include<fstream>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
int temp;
int br = 1;

[Code] ....

View 10 Replies View Related

Visual C++ :: Merge Sort - Binary Search

Feb 25, 2013

I have created a program that first sorts a series of numbers that are input dynamically then an option is given to either use a sequential search or a Binary search. my sequential search works fine but the merge sort coupled with the binary search has a small bug that I just can't seem to figure how to eliminate. I first used my own merge sort but it was really in efficient so a I took a more efficient example and incorporated it in my program but I cant seem to get rid of this bug I'm dealing with. and it seems to be causing a further problem with the Binary seach.

Code:
#include <iostream>
#include <cmath>
using namespace std;
const int N = 10;

[Code] .....

View 3 Replies View Related

C :: Implementing Selection Sort Algorithm

Jun 14, 2014

So i'm trying to implement the selection sort algorithm and it seems that the code is fine but...

Code:
#include <cs50.h>
#include "helpers.h"
void
sort(int values[], int n) {
// TODO: implement an O(n^2) sort

[Code] ....

I keep getting these errors and i don't understand why:

/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: ld returned 1 exit status

View 3 Replies View Related

C :: Code That Takes Two Arrays From The User And Merge / Sort?

Oct 27, 2013

I'm trying to write a code that takes two arrays from the user (presumably in ascending order) and then passes the sizes of both arrays and a pointer to each to a separate "int* mergeArrays" function that will merge sort the two. I've written a lot of the code, but I can't get it to compile. I get errors: lab6.c: In function "main":

lab6.c:31:14: error: expected expression before "int"
mergeArrays(int* firstArray, int size1, int* secondArray, int size2);
^
lab6.c:31:14: error: too few arguments to function "mergeArrays"

[Code] ....

View 2 Replies View Related

C++ :: Merge Sort Only Works Fine For Small Numbers

Apr 10, 2013

Whenever I try to call merge sort on large numbers say n=10000000. It gives an error. It works fine for small numbers, even though I have declared my Lists on the heap.

The below code is just the divde part.

List<long>* Merge(List<long> *ParentList) {
if((ParentList)->Length==1) {
return ParentList;

[Code] .....

View 1 Replies View Related

C++ :: Merge Sort Destructor - Using Delete On All Pointers On Stack

Apr 7, 2014

How can I use "delete[]" on all pointers on the stack, using a mixture of top and pop functions or variables

View 2 Replies View Related

C++ :: Merge Sort Implementation Giving Incorrect Output

Oct 25, 2014

I've implemented the merge sort algorithm and used the 'merge' part for counting the number of split-inversions in an array as part of an assignment for an online course. How ever, the out put array is not a sorted version of the input array and as a result the number of split inversions obtained is wrong. I think that there is some thing wrong in the way I am indexing arrays.

I've used ' cout ' to print the values of indexes to see exactly what values are being passed in during the recursions.

Code:

#include <iostream>
using namespace std;
int length=0,mid=0,inv=0;
void mergesort(int arr[], int first, int last) {
cout << "first: " << first << " " << "last: " << last;
cout << endl;

[code].....

View 5 Replies View Related

C++ :: Merge Sort Algorithm - Output Random Results

Sep 16, 2012

I am trying to code a merge sort algoritm, using my knowledge of C++. I have made some code but it is not working. It is giving some random results.

Code:

#include <cstdlib>
#include <iostream>
using namespace std;
void print(int *niz) {

[Code] ....

View 1 Replies View Related

Visual C++ :: Runtime Error In Merge Sort Algorithm

May 3, 2013

# include <iostream>
# include <vector>
# include <cstdio>
# include <algorithm>
# define inf 100000

using namespace std;
int cnt;
vector<int> merge( vector<int>& left, vector<int>& right) {

[Code] ....

View 6 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved