📅  最后修改于: 2023-12-03 15:26:41.848000             🧑  作者: Mango
在编程中,我们经常需要对字符串进行排序。按照字符的 ASCII 值对字符串进行排序是一种常见的方式。下面我们来介绍如何实现。
按照字符的 ASCII 值对字符串进行排序,可以通过以下步骤实现:
其中,第二步可以使用快速排序、归并排序、堆排序等算法实现。本文以快速排序为例进行演示。
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;
}
}
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 代码示例。