Sắp xếp dòng
Sắp xếp mọi danh sách: theo bảng chữ cái theo cả hai chiều, theo thứ tự tự nhiên, theo số đầu tiên trên mỗi dòng, theo độ dài hoặc xáo trộn ngẫu nhiên. Việc sắp xếp dùng quy tắc ngôn ngữ của chính trình duyệt và chạy hoàn toàn trên thiết bị của bạn.
0 ký tự · 0 từ · 0 dòng
0 ký tự · 0 từ · 0 dòng
Chạy hoàn toàn trong tab trình duyệt này. Văn bản của bạn không bao giờ được tải lên hay lưu trữ.
Công cụ này làm gì
Sắp xếp dòng sắp xếp lại các dòng theo bảng chữ cái với quy tắc đối chiếu theo ngôn ngữ của trình duyệt, theo thứ tự tự nhiên (file2 trước file10), theo số đầu tiên trong mỗi dòng, theo độ dài, hoặc xáo trộn ngẫu nhiên.
mục 10 mục 9 Mục 1
Mục 1 mục 9 mục 10
Thứ tự bảng chữ cái khác với thứ tự mã ký tự
Cách đơn giản nhất để máy tính sắp xếp văn bản là theo mã ký tự, nhưng cách này cho kết quả lạ: mọi chữ hoa (mã 65 đến 90 trong ASCII) đứng trước mọi chữ thường (97 đến 122), nên "Zebra" xếp trước "apple", còn chữ có dấu thì nằm sau z. Người dùng lại mong đợi thứ tự như trong từ điển, mà các nhà ngôn ngữ học gọi là đối chiếu (collation). Công cụ này dùng Intl.Collator, bản cài đặt Thuật toán đối chiếu Unicode (Unicode Collation Algorithm) của trình duyệt, nên "apple", "Banana" và "éclair" được sắp xếp đúng như người đọc mong muốn.
Cách đối chiếu còn phụ thuộc vào ngôn ngữ. Từ điển tiếng Đức xếp ä cùng với a, trong khi tiếng Thụy Điển đặt å, ä và ö sau z, ở cuối bảng chữ cái. Công cụ dùng ngôn ngữ mặc định của trình duyệt, nên danh sách sắp xếp trên máy dùng tiếng Thụy Điển sẽ theo quy tắc tiếng Thụy Điển. Khi bật bỏ qua chữ hoa/thường, các chữ chỉ khác nhau về chữ hoa hoặc dấu được coi là bằng nhau và được xếp theo điểm khác biệt tiếp theo.
Thứ tự tự nhiên, theo số và theo độ dài
Thứ tự bảng chữ cái so sánh từng chữ số một, nên "file10" đứng trước "file2" vì 1 nhỏ hơn 2. Thứ tự tự nhiên đọc cả dãy chữ số như một số hoàn chỉnh và cho ra file1, file2, file10, giống cách các trình quản lý tệp như Windows Explorer và Finder trên macOS hiển thị tên. Hãy dùng cho tên chương, danh sách phiên bản, số hóa đơn và tên ảnh như IMG_9 và IMG_10.
Thứ tự số tìm số đầu tiên trong mỗi dòng, kể cả dấu trừ và phần thập phân, rồi sắp xếp theo giá trị của số đó, phù hợp với bảng giá, điểm số và các dòng như "12 apples". Dòng không có số sẽ đứng cuối. Thứ tự theo Độ dài sắp xếp theo số ký tự hiển thị, ngắn nhất trước, nếu bằng nhau thì xếp theo bảng chữ cái; cách này hữu ích để tìm tên miền ngắn nhất hoặc phát hiện các mục bị cắt cụt.
Cách xáo trộn hoạt động
Xáo trộn dùng thuật toán Fisher–Yates (do Ronald Fisher và Frank Yates công bố năm 1938, Richard Durstenfeld điều chỉnh cho máy tính năm 1964), duyệt danh sách từ cuối lên và hoán đổi mỗi dòng với một dòng được chọn ngẫu nhiên ở vị trí đó hoặc trước đó. Với nguồn ngẫu nhiên tốt, mọi thứ tự đều có xác suất như nhau. Các số ngẫu nhiên đến từ mulberry32, một bộ sinh số giả ngẫu nhiên nhỏ có hạt giống, nên kết quả xáo trộn giữ nguyên cho đến khi bạn yêu cầu xáo lại. Vì trạng thái chỉ có 32 bit, nó chỉ tạo được tối đa khoảng 4,3 tỉ cách xáo khác nhau, ít hơn 6,2 tỉ thứ tự của chỉ 13 dòng. Mức này đủ cho câu hỏi trắc nghiệm, danh sách phát hay chọn thứ tự thuyết trình, nhưng không dùng cho xổ số hoặc bất cứ việc gì liên quan đến tiền bạc hay bảo mật.
Để làm sạch danh sách trước khi sắp xếp, hãy chạy qua Xóa dòng trùng lặp trước.
Câu hỏi thường gặp
- Vì sao file10 lại đứng trước file2?
- Thứ tự bảng chữ cái thông thường so sánh từng ký tự, và 1 đứng trước 2. Hãy chọn thứ tự tự nhiên, coi mỗi dãy chữ số là một số, để file2 đứng trước file10.
- Khi sắp xếp, từ viết hoa có được đưa lên đầu không?
- Không. Việc sắp xếp dùng đối chiếu theo ngôn ngữ, nên apple và Apple nằm cạnh nhau. Chỉ cách sắp xếp theo mã ký tự đơn giản mới đặt mọi chữ hoa trước mọi chữ thường.
- Xáo trộn có thực sự ngẫu nhiên không?
- Công cụ dùng thuật toán xáo trộn Fisher–Yates không thiên lệch, chạy bằng bộ sinh số giả ngẫu nhiên nhanh có hạt giống. Mức này đủ công bằng cho việc hằng ngày nhưng không phù hợp cho bốc thăm, xổ số hay bảo mật.
- Khi sắp xếp theo số, các dòng không có số được đặt ở đâu?
- Chúng nằm ở cuối danh sách, xếp theo bảng chữ cái với nhau. Các dòng có chứa số được sắp xếp theo giá trị của số đầu tiên tìm thấy trên dòng.
- Có thể sắp xếp dòng theo thứ tự bảng chữ cái ngược không?
- Có, hãy chọn Z→A. Công cụ dùng cùng cách so sánh theo ngôn ngữ như A→Z, chỉ đảo ngược, nên các từ có dấu và chữ hoa vẫn ở vị trí hợp lý.