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
ADVERTISEMENT
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
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
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
Feb 13, 2013
I have written this code to arrange user input array in an order.
//Recursive Quick Sort
#include<stdio.h>
#define ARRAY_SIZE 10
void quick_sort(int array[], int len)
}
[code].....
View 6 Replies
View Related
Mar 25, 2013
I'm trying to implement the flocking algorithm in C++. I've tried to implement it myself by making all the particles 'home-in' on the player. When 2 particles then collide within their larger bounding boxes they home-in to each other. And when the 2 particles are actually touching they repel each other until they are outside of their bounding boxes and find another particle to home-into.when I run my application the particles all home into the player and come to a stand still along the Y-axis above the player.
All the particles in question are stored in a Vector, with a pos and velocity.
for(int i = 0; i < swarm.size(); i++) {
for (int j = 0; j < swarm.size(); j++) {
if (swarm.at(i)->getParticleModel()->getPosition().x < gameObjects.front()->getParticleModel()->getPosition().x) {
if (swarm.at(i)->getParticleModel()->getTouching() == false)
[code]....
View 5 Replies
View Related
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
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
Apr 6, 2014
I'm attempting to write the maximal clique algorithm for use with an adjacency matrix.I'm following a video which explains how to code and implement the algorithm using python. I want to write it for c++. URL....I'm currently trying to code the powerset function at 2 minutes into the video. I'm not sure if I should be using arrays or not.
So far I have coded the below but I dont know how to return an empty array inside an empty array (when the elts list is of size 0). I wrote an isEmpty function for the array since I cant use len(elts) like in python.
bool empty = true;
bool isEmpty(int elts[]) {
for (int z=0;z<10;z++) {
if (elts[z] != 0) {
cout << elts[z] << endl;
empty = false;
[code]....
The code should use either an array/list/vector that we call 'elts' (short for elements). Then firstly, it should add the empty list [], then the rest of the power set (all shown in the video).So for example, in the case that elts = [1,2,3,4], my code should return:[ [],[4],[3],[4,3],[2],[4,2],[3,2],[4,3,2],[1],[4,1],[3,1],[4,3,1],[2,1],[4,2,1],[3,2,1],[4,3,2,1] ]
View 2 Replies
View Related
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
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
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
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
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
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
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
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
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
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
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
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
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
View Related
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
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
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
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