컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post 펄/Perl] 문자열 배열 정렬(소팅), sort 함수 사용법: Sort String Ar...구글어스 좌표 구하기: 위도(Latitude), 경도(Longitude) - Google ...자바,Java] 텍스트 파일 읽기, 한줄씩 읽어 화면에 출력; 자바 기초구글, 지정한 사이트만 검색, 특정 디렉토리(폴더)만 검색, Site Search Goog...반복되는 명령 실행: 윈도우 도스창 / 리눅스 - Repeat Commands도스 명령] 하위 디렉토리까지 복사, Copy 디렉토리: XCOPY, DOS 배치 파일C언어] gcc 매뉴얼 다운로드 주소 (C Library Manual; x 메뉴얼)Linux 리눅스] bashrc / bash_profile 설정 파일들의 위치는?자바.Java] 실수 연산 특수값(특수숫자): NaN, Infinity 무한대윈도우] 파일 찾기 명령, 도스창에서 디렉토리 찾기, File Find Command

펄/Perl] 숫자 배열 정렬(소팅), sort 함수 사용법: Sort Number Array

Friday, October 20, 2006

숫자 배열을 정렬하는 방법입니다. 그런데 문자열 배열을 정렬하는 방식으로 숫자 배열을 정렬하면 엄청난 오류가 발생합니다. 숫자를 문자열로서 소팅하면, 숫자의 첫글자를 기준으로 정렬을 하게 되어 이상한 결과가 나오게 되는 것입니다. 숫자 소팅은 숫자의 값으로 소팅을 해야 합니다.


숫자 소팅 예제


#!/usr/bin/perl
use strict; use warnings;

  # 숫자 배열 정의
  my @num = qw( 24 6523.01 9857 51 2 43 90 2 0 0.0 636.62 );


  print "주의! 틀린 방법으로 소팅\n";
  @num = sort @num;
  print $_, "\n" foreach (@num); # 배열 출력


  print "\n------------------\n";


  print "바른 방법으로 숫자 소팅\n";
  @num = sort {$a <=> $b} @num;  # 1,2,3 순으로 정렬; Ascending
  print $_, "\n" foreach (@num); # 배열 출력


  print "\n------------------\n";


  print "바른 방법으로 숫자 역순(Descending) 소팅\n";
  @num = sort {$b <=> $a} @num;  # 3,2,1 역순으로 정렬
  print $_, "\n" foreach (@num); # 배열 출력




실행 결과:
D:\Z>0.pl
주의! 틀린 방법으로 소팅
0
0.0
2
2
24
43
51
636.62
6523.01
90
9857

------------------
바른 방법으로 숫자 소팅
0
0.0
2
2
24
43
51
90
636.62
6523.01
9857

------------------
바른 방법으로 숫자 역순(Descending) 소팅
9857
6523.01
636.62
90
51
43
24
2
2
0
0.0

D:\Z>



▶▶ 펄/Perl] 문자열 배열 정렬(소팅), sort 함수 사용법: Sort String Array

▶▶ 윈도우 SORT 명령, 숫자 크기순 정렬(소팅) 문제 해결, Perl(펄)로


숫자 크기순 정렬 도구: ▶▶ 숫자 크기순 정렬 도구, 소트 소팅 툴; Numeric Sort Tool

문자열 가나다순 정렬 툴: ▶▶ 가나다순 정렬, 문자 단어 문자열 소팅 소트 변환기; Sort Strings Tool

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top