📌  相关文章
📜  根据字符的 ASCII 值对字符串进行排序(1)

📅  最后修改于: 2023-12-03 15:26:41.848000             🧑  作者: Mango

根据字符的 ASCII 值对字符串进行排序

在编程中,我们经常需要对字符串进行排序。按照字符的 ASCII 值对字符串进行排序是一种常见的方式。下面我们来介绍如何实现。

算法思路

按照字符的 ASCII 值对字符串进行排序,可以通过以下步骤实现:

  1. 将字符串转换成字符数组。
  2. 对字符数组进行排序。
  3. 将排序后的字符数组转换成字符串。

其中,第二步可以使用快速排序、归并排序、堆排序等算法实现。本文以快速排序为例进行演示。

代码实现
Java 代码示例
public class ASCIISort {
    public static void main(String[] args) {
        String str = "Hello World!";
        char[] charArray = str.toCharArray();
        quickSort(charArray, 0, charArray.length - 1);
        String sortedStr = new String(charArray);
        System.out.println(sortedStr);
    }

    public static void quickSort(char[] arr, int low, int high) {
        if (low < high) {
            int pivot = partition(arr, low, high);
            quickSort(arr, low, pivot - 1);
            quickSort(arr, pivot + 1, high);
        }
    }

    public static int partition(char[] arr, int low, int high) {
        char pivot = arr[high];
        int i = low - 1;
        for (int j = low; j < high; j++) {
            if (arr[j] < pivot) {
                i++;
                char temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
        char temp = arr[i + 1];
        arr[i + 1] = arr[high];
        arr[high] = temp;
        return i + 1;
    }
}
Python 代码示例
def ascii_sort(s):
    char_list = list(s)
    quick_sort(char_list, 0, len(char_list) - 1)
    return "".join(char_list)

def quick_sort(arr, low, high):
    if low < high:
        pivot = partition(arr, low, high)
        quick_sort(arr, low, pivot - 1)
        quick_sort(arr, pivot + 1, high)

def partition(arr, low, high):
    pivot = arr[high]
    i = low - 1
    for j in range(low, high):
        if arr[j] < pivot:
            i += 1
            arr[i], arr[j] = arr[j], arr[i]
    arr[i + 1], arr[high] = arr[high], arr[i + 1]
    return i + 1

print(ascii_sort("Hello World!"))
总结

按照字符的 ASCII 值对字符串进行排序是一种常见的排序方式。可以使用快速排序、归并排序、堆排序等算法实现。本文以快速排序为例进行演示,并提供了 Java 和 Python 代码示例。