C :: Array Sort With Qsort By Using Two Criteria?
Sep 26, 2014
I am starting a new thread. 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!
Which works fine, with following 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]...
I tried to add the criteria :
(if (a[i] != a[j] || (a[i] == a[j] && array_order[i] > array_order[j])))
before calling switch_pos, but it is not working since sometimes you swap two numbers like:
11 9 15 9 <= here the 11 and 15 are swapped, but the two 9's will never be swapped <=> compared.I mean I could run it again with the array_order on the first parameter position, but this would increase my runtime enormously!
View 6 Replies
ADVERTISEMENT
Sep 28, 2014
How do i sort numbers from highest to lowest using qsort? I dont have a code. I dont know how to use this one.
View 1 Replies
View Related
Mar 31, 2013
I am versed in qsorting struct members within a struct instance, as in the example below:
Code:
#include <iostream>
#include <stdlib.h>
using namespace std;
struct item_database {
[Code]....
What I CANT do however is to sort an array of structs by one of its members. This is a complete different problem even if it sounds similar.
In other words, the problem is this; Say we have a struct:
Code:
struct item_database {
int key;
string token;
};
Then we declare an array of this struct in the heap:
Code: item_database *idptr = new item_database[700000]; and initialize its values.
How would one go about sorting this heap array of structs by its member function "token"?
I used the following call to qsort (standard library) and call to the compare function but it doesnt work:
Code:
qsort (idptr, 1000, sizeof(string), compare);
Code: int compare (const void* a, const void* b){
if (*(char*)a >= *(char*)b)
return 1;
else
return -1;
}
Or in more lamens terms say we have the following stuct instances:
Key: Token:
1 Hello
2 World
3 How
4 Are
5 You
Then I need those structs to order according to token (alphabetically, increasing or decreasing depending whats in our compare function).....
View 3 Replies
View Related
Mar 2, 2013
I want to be honest, this is FOR homework, but is NOT homework. I have created this example to work from in order to understand qsort further because the next assignment requires it's use.
Our teacher gave us this small piece of example code and I am trying to expand on it to serve my purpose.
[C] Sorting - Pastebin.com
The code gives me no errors, but does not sort the array. Need to clarify the use of qsort in this instance.
I am imagining that the reason it's not sorting properly ( or at all ) is because of my comparison function. That is really just an assumption. Or perhaps I just don't understand the pointer array i'm using.
View 3 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
Feb 12, 2013
I am firing an insert query like this in C# to MS ACCESS 07 Database
var expiry = dateTimePicker1.Text;
string instr = "insert into MST_QUOTATION values(";
instr += txtID.Text;
[Code]...
data type mismatch in criteria expression
View 2 Replies
View Related
Jul 10, 2013
Procedure to Compare 2 Strings with the following criteria
coding of the following function -
I have absolutely no clue where to start -
Given the following sets of numbers -
1154 1179 2154 2554 2484 2144 4515 1144 1517 4815 1481
Given the Index number of 1154
I want to search the numbers for the Index number of 1154
The search will return a True if I can find 3 or 4 same digits between the Index number and the 8 numbers
The search also have the following criteria -
meaning that -
1154 when compared to 1154 == true
1154 when compared to 1179 == false
1154 when compared to 2154 == true
1154 when compared to 2554 == false
1154 when compared to 2484 == false
1154 when compared to 2144 == false
1154 when compared to 4515 == true
1154 when compared to 1144 == true
1154 when compared to 1517 == true
1154 when compared to 4815 == true
1154 when compared to 1481 == true
the index number can also be of type - 1234, 1123, 1112, 1111
View 14 Replies
View Related
Mar 22, 2013
how to sort a 1D array using function sort().but if i have a 2D array how do i sort only 1 row of it (or column)?
View 2 Replies
View Related
Mar 20, 2013
i am facing some problem with qsort() function it work well if the last element of array is larger then the 2nd last element. But in case if last element of array is smaller then the 2nd last it will sort the whole array and remains the last as it is. For example
Code:
int group_id_local[max_j]={2,1,4,5};// it work fine, output should be {1,2,4,5} but if i have this one
int group_id_local[max_j]={2,1,4,3};
// output should be {1,2,4,3}
/* COMPARE FUNCTION FOR USING QSORT()*/
int cmpfunc (const void* a, const void* b)
{
if (*(int *)a < *(int *)b) return -1;
if (*(int *)a > *(int *)b) return 1;
return 0;
[Code]....
why it will not sort the last element?
View 5 Replies
View Related
Nov 8, 2014
I almost finished a program but am stuck on sorting the hand im dealing with qsort. sorting by the face values and if they have the same faces im suppose to follow this suit order to determine which one is greater (Clubs, Diamond, Hearts, and Spades) how would i adjust my comparator function to do this for me ?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define DECK_SIZE 52
struct card {
const char *face;
const char *suit;
[code]....
View 4 Replies
View Related
Nov 7, 2014
I know how to sort an array but how I can sort an array regard to nth term.
Example: 2 --> nth digit 4 45 62 1 900 105 -->inputs
Output: 001 004 105 900 045 065
View 1 Replies
View Related
Jul 28, 2013
I want to sort an array like Myarray[3][4] based on the second column while other correspondent rows exchange consequently.
My array is as follows:
3 8 7 2
9 12 0 4
12 2 14 1
I want to sort it based on the second column using “std::qsort" or "std::sort” or other quick method that would lead to the following :
12 2 14 1
3 8 7 2
9 12 0 4
View 7 Replies
View Related
Mar 6, 2015
I have this code(homework) i've been working on for several days i couldn't fix this error.
Question is: to write a sort program in c . Ineed to ask user for how many numbers to be sorted(n) ask again for values. The approach of sort is this:
1- store n in temporary var (temp)
2- search for largest number in array (0 until temp-1)
3- switch the fied that store largest with field indexed by (temp-1)
4- temp-- (decrement)
5- repeat steps 2 to 4 until temp is 1
the program then prints the numbers of array on screen in one line. I also should use a function getMax(int *list , int n) that determines largest value and returns its location in that array
list : is the array
n: number of elements
Code:
#include<stdio.h>
int getMax(int *list, int n); //definition of getMax function
int main(void) {
int n,i;
[Code] .....
so i tried to sort this array
Code:
input 2 7 9 4 3 1 6 5
The out put should be : 9 7 6 5 4 3 2 1
instead it prints : 7 9 2 4 3 1 6
View 11 Replies
View Related
May 1, 2014
This program is suppose to sort the array values then throw out the first and last value. It does not seem to do doing this.
Code:
# include <stdio.h>02
void bubbleSort(float judges[], float array);
03
int main (void){
[code] .....
View 3 Replies
View Related
Feb 18, 2014
How to sort the last name instead of first name. Everything works so far and sorting is done on the first character.
#include <iostream>
#include <cstring>
using namespace std;
void sort(int, char[10][40]);
int main() {
char twoD[10][40];
int input = 0;
[Code] .....
View 4 Replies
View Related
Aug 31, 2014
Write a program that dynamically allocates an array large enough to hold a user-defined number of test scores. Once all the scores are entered by the user, the array must be passed to a function that sorts them in ascending order. It must use another function that calculates the average score. The program should display the sorted list of scores and average with appropriate headings. The program must use pointer notation instead of array notation. Validation: Do not accept negative numbers for test scores; keep prompting the user for a new grade. Do not accept negative numbers for the number of scores the user wants to enter.
#include <iostream>
#include <iomanip>
using namespace std;
// Function prototypes
double getAverage(int*, int);
void sortScore(int *,int );
[Code] ....
I have no errors in my code but when i run it and i enter a positive interger it just goes into a loop to enter a positive number.
View 2 Replies
View Related
Apr 3, 2014
I want to use two dimensional array by insertion sort or quick sort
View 2 Replies
View Related
Dec 18, 2014
I am creating 5 different tables each one has 20000 more elements more than the previous when i try to sort them with the sort algorithm quick sort for the first table tha has 20000 elements runs grate then it throws this exception how is this fixable ?
Exception : terminate called after throwing an instanceof 'std::bad_alloc' this application has Requested the Runtime to terminate it in an unusual way. Please contact the applications's support team for more information. Process returned 255(0xFF) . here is the code that gives this return :
Code:
#include<time.h>
#include<stdlib.h>
#include <string.h>
#include <ctime>
using namespace std;
int * Create_Table(int table[],int N);
[Code] .....
View 10 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
Mar 9, 2013
I'm passing an array into this function and it's taking the item at index 0 and replacing the rest of the array with it.
Code:
void generic_sort (void *arg, size_t num, size_t size, int (*cmpfnc) (const void *, const void *)) {
for (int i = 1; i < (int)num; ++i) {
int j = i;
char *tmp_address = malloc (sizeof (arg));
tmp_address = (char *)arg + j * size;
[Code] ....
View 13 Replies
View Related
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
View Related
Jan 16, 2014
I am trying to sort an array declared as a struct but it doesn't work. What am i doing wrong?
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("date.in");
ofstream g("date.out");
int n;
struct film
[Code]...
View 1 Replies
View Related
Jan 24, 2013
I have written a selection sort algorithm to go sort an array of class objects by age in ascending order, the problem is that the output being given does not match what i think the code should do. when the program runs the 3 records are added to the array and when they are sorted should be outputed in ascending order, the problem is that with my code the last 2 are sorted properly but the first element does not seem to move, it remains the same as the original unsorted value.
My code for the selection sort function and the display method are below:
void selectionSort() {
int i, minIndex, minValue;
for (i = 0; i < (arrlength - 1); i++) {
minIndex = i ;
[Code].....
View 1 Replies
View Related
Apr 9, 2015
I am trying to sort an array of strings but when I pass it through my bubbleSort function, it gives me a segmentation fault. By print checking, I know that there are strings in the array "f" but it doesn't get sorted.
Note: The file I am putting into this program is a text file with 1000 lines
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
[Code].....
View 1 Replies
View Related
May 25, 2013
I'm using a database and im trying to sort a 2D array info[51][10] that contains 51 pieces of records and 10 different fields for each record. And, now I'm trying to sort a desired field in the 2D array alphabetically.
However, the other fields within the same record should be swapped together. (So that the information of the same records stays together).
Also, I am constantly experiencing a run-time error. Sometimes my program works sometimes the whole thing crashes... By opening the code in different folders sometimes works. But the problem is still here. Is there any way to fix this error?
bool swapped =true;
int j=0;
string tmp[10];
swapped =true;
j=0;
[Code] .....
View 1 Replies
View Related
Jun 28, 2012
I am trying to sort an array of random numbers by passing it to a method Sort(), sort the array, and then pass the entire array back to the calling program. Each time I run this though, the array doesn't seem to sort. I'm not sure if the problem lies with my sorting algorithm or if it has something to do with calling the function.
Code:
static void HighAverage(int[] a) {
for (int i = 0; i < a.Length; i++) {
if ((i + 1) % 10 == 0 && i != 0)
[Code].....
View 5 Replies
View Related