Announcement

Collapse
No announcement yet.

Hàm QuickSort viết bằng 1 dòng lệnh

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [Python] Hàm QuickSort viết bằng 1 dòng lệnh

    Sức mạnh của Python
    lst là danh sách cần sắp xếp, hôm qua lang thang StackOverFlow thì tìm ra cai' na`y )
    Stack Overflow | The World’s Largest Online Community for Developers



  • #2
    Lợi hại quá

    Comment


    • #3
      với sự hỗ trợ đắc lực của lambda ^^
      Amat Victoria Curam.

      ------
      Ping me at me@toan.mobi

      Comment


      • #4
        Thực ra lambda là để giúp tiết kiệm một dòng khai báo hàm thôi. Nếu không dùng lambda vẫn có thể viết hàm quick sort với duy nhất một dòng lệnh và cộng thêm dòng def quicksort(lst) nữa là 2 dòng.

        Comment


        • #5
          viết cả một dự án lên 1 dòng cũng đc mà, =))
          Phạm Minh Tâm
          Phone: 01643-652-922
          Skype ID: tampham47@live.com

          Comment


          • #6
            Sức mạnh của Ruby:
            Code:
            qsort1 = lambda { |lst|  if lst.size <=1 then lst else qsort1.call(lst.select{|x| x < lst[0]}) +  [lst[0]] + qsort1.call(lst.select{|x| x > lst[0]}) end }
            qsort1.call([1, 5, 6, 3, 7]) ==> [1, 3, 5, 6, 7]
            Chưa....

            Comment


            • #7
              Ruby vs Python: cuộc chiến không có hồi kết )

              Comment


              • #8
                Originally posted by 09520434 View Post
                viết cả một dự án lên 1 dòng cũng đc mà, =))
                1 dòng lệnh (1 statement) khác với 1 dòng trong editor (có thể gồm nhiều statement).

                Comment


                • #9
                  Originally posted by 08520522 View Post
                  Sức mạnh của Ruby:
                  Code:
                  qsort1 = lambda { |lst|  if lst.size <=1 then lst else qsort1.call(lst.select{|x| x < lst[0]}) +  [lst[0]] + qsort1.call(lst.select{|x| x > lst[0]}) end }
                  qsort1.call([1, 5, 6, 3, 7]) ==> [1, 3, 5, 6, 7]
                  Rất tiếc chữ vì chữ end của thằng Ruby =))
                  Python chỉ indent thôi .

                  Comment


                  • #10
                    thêm cái nữa cho phong phú. sức mạnh của LISP =))

                    (defun quicksort (lis) (if (null lis) nil (let* ((x (car lis)) (r (cdr lis)) (fn (lambda (a) (< a x)))) (append (quicksort (remove-if-not fn r)) (list x) (quicksort (remove-if fn r))))))

                    Comment


                    • #11
                      cũng vô ích, viết kiểu này lúc fix bugs hay maintenance sếp chửi cho mà nghe
                      Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
                      Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
                      Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
                      Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
                      ...

                      Comment


                      • #12
                        Mấy ngôn ngữ khác không biết, chứ với phép tính lamda thì ngôn ngữ lập trình hàm có thể giải mọi bài toán (có thể giải được) bằng một dòng lệnh.
                        Nhưng việc viết nó khá phức tạp.Và đó cũng không phải là sức mạnh của lập trình hàm.

                        Comment


                        • #13
                          ghê qá, e chả hiểu cái j` ráo @@..., mình nhỏ bé qá

                          Comment


                          • #14
                            Originally posted by 08520195 View Post
                            cũng vô ích, viết kiểu này lúc fix bugs hay maintenance sếp chửi cho mà nghe
                            Sếp đâu có fix bug mà chửi, chỉ có thằng nào được phân fix bugs đó mới chửi thôi =))
                            Chưa....

                            Comment


                            • #15
                              power of C++
                              Code:
                              
                              
                              #include<stdio.h>
                              
                              void quicksort(int [10],int,int);
                              
                              int main()
                              {
                                int x[20],n,i;
                              
                                printf("So luong phan tu: ");
                                scanf("%d",&n);
                              
                                for(i=0;i<n;i++)
                                {
                                printf("Nhap vao phan tu a[%d] ",i);
                                  scanf("%d",&x[i]);
                                }
                                quicksort(x,0,n-1);
                              
                                printf("Mang sau khi duoc sap xep la: ");
                                for(i=0;i<n;i++)
                                  printf(" %d",x[i]);
                              
                                return 0;
                              }
                              
                              void quicksort(int x[10],int first,int last){
                                  int pivot,j,temp,i;
                              
                                   if(first<last){
                                       pivot=first;
                                       i=first;
                                       j=last;
                              
                                       while(i<j){
                                           while(x[i]<=x[pivot]&&i<last)
                                               i++;
                                           while(x[j]>x[pivot])
                                               j--;
                                           if(i<j){
                                               temp=x[i];
                                                x[i]=x[j];
                                                x[j]=temp;
                                           }
                                       }
                              
                                       temp=x[pivot];
                                       x[pivot]=x[j];
                                       x[j]=temp;
                                       quicksort(x,first,j-1);
                                       quicksort(x,j+1,last);
                              
                                  }
                              
                              }

                              ngôn ngữ này cũng ghê ha, mai học mới được )

                              Comment

                              LHQC

                              Collapse
                              Working...
                              X