Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

데블스캠프2010/일반리스트: Difference between revisions

From ZeroWiki
imported>beonit
No edit summary
 
imported>beonit
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
* http://isis.poly.edu/kulesh/stuff/src/klist/
* http://isis.poly.edu/kulesh/stuff/src/klist/
// #include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define MAX 1000000
 
int fn_qsort_intcmp( const void *a, const void *b )
{
  return( *(int *)a - *(int *)b);
}
 
int main()
{
  int *a;
  int i;
  int *c;
 
  a = (int *)malloc(sizeof(int)*MAX);
//  clock_t stime, etime;
 
  for (i = 0; i < MAX; i++)
  {
    a[i] = rand()%MAX;
  }
 
//  stime = clock();
  qsort( a, MAX, sizeof(int), fn_qsort_intcmp );
//  etime = clock();
//  printf("Time : %.3fs\n",(double)(etime - stime)/CLOCKS_PER_SEC);
  return 0;
}
== qsort by template ==
// list::sort
#include <iostream>
#include <list>
#include <string>
#include <cctype>
using namespace std;
// comparison, not case sensitive.
bool compare_nocase (string first, string second)
{
  unsigned int i=0;
  while ( (i<first.length()) && (i<second.length()) )
  {
    if (tolower(first[i])<tolower(second[i])) return true;
    else if (tolower(first[i])>tolower(second[i])) return false;
    ++i;
  }
  if (first.length()<second.length()) return true;
  else return false;
}
int main ()
{
  list<string> mylist;
  list<string>::iterator it;
  mylist.push_back ("one");
  mylist.push_back ("two");
  mylist.push_back ("Three");
  mylist.sort();
  cout << "mylist contains:";
  for (it=mylist.begin(); it!=mylist.end(); ++it)
    cout << " " << *it;
  cout << endl;
  mylist.sort(compare_nocase);
  cout << "mylist contains:";
  for (it=mylist.begin(); it!=mylist.end(); ++it)
    cout << " " << *it;
  cout << endl;
  return 0;
}



Latest revision as of 13:06, 22 June 2010

// #include <unistd.h> 
#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 
 
#define MAX 1000000 
 
int fn_qsort_intcmp( const void *a, const void *b ) 
{ 
  return( *(int *)a - *(int *)b); 
} 
 
int main() 
{ 
  int *a; 
  int i; 
  int *c; 
 
  a = (int *)malloc(sizeof(int)*MAX); 
//  clock_t stime, etime; 
 
  for (i = 0; i < MAX; i++) 
  { 
    a[i] = rand()%MAX; 
  } 
 
//  stime = clock(); 
  qsort( a, MAX, sizeof(int), fn_qsort_intcmp ); 
//  etime = clock(); 
//  printf("Time : %.3fs\n",(double)(etime - stime)/CLOCKS_PER_SEC); 
  return 0; 
} 

qsort by template

// list::sort
#include <iostream>
#include <list>
#include <string>
#include <cctype>
using namespace std;

// comparison, not case sensitive.
bool compare_nocase (string first, string second)
{
  unsigned int i=0;
  while ( (i<first.length()) && (i<second.length()) )
  {
    if (tolower(first[i])<tolower(second[i])) return true;
    else if (tolower(first[i])>tolower(second[i])) return false;
    ++i;
  }
  if (first.length()<second.length()) return true;
  else return false;
}

int main ()
{
  list<string> mylist;
  list<string>::iterator it;
  mylist.push_back ("one");
  mylist.push_back ("two");
  mylist.push_back ("Three");

  mylist.sort();

  cout << "mylist contains:";
  for (it=mylist.begin(); it!=mylist.end(); ++it)
    cout << " " << *it;
  cout << endl;

  mylist.sort(compare_nocase);

  cout << "mylist contains:";
  for (it=mylist.begin(); it!=mylist.end(); ++it)
    cout << " " << *it;
  cout << endl;

  return 0;
}