用指针写选择排序函数不用数组
时间: 2023-03-30 14:01:06 浏览: 97
好的,我可以回答这个问题。选择排序是一种简单的排序算法,它的基本思想是每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。使用指针可以避免使用数组,可以节省空间和时间。下面是一个用指针写的选择排序函数的示例代码:
void selection_sort(int *arr, int n) {
int i, j, min_idx, temp;
for (i = ; i < n-1; i++) {
min_idx = i;
for (j = i+1; j < n; j++) {
if (*(arr+j) < *(arr+min_idx)) {
min_idx = j;
}
}
temp = *(arr+i);
*(arr+i) = *(arr+min_idx);
*(arr+min_idx) = temp;
}
}
其中,arr 是一个指向整型数组的指针,n 是数组的长度。在函数内部,使用指针访问数组元素,比如 *(arr+i) 表示数组中第 i 个元素的值。
相关问题
不使用函数将指针数组进行排序
下面是一个示例代码,使用冒泡排序对指针数组进行排序:
```
#include <stdio.h>
int main() {
int arr[] = { 5, 3, 8, 1, 4 };
int *p[5];
// 初始化指针数组
for (int i = 0; i < 5; i++) {
p[i] = &arr[i];
}
// 冒泡排序
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4 - i; j++) {
if (*p[j] > *p[j + 1]) {
int *temp = p[j];
p[j] = p[j + 1];
p[j + 1] = temp;
}
}
}
// 输出排序后的结果
for (int i = 0; i < 5; i++) {
printf("%d ", *p[i]);
}
return 0;
}
```
在这个示例代码中,我们首先定义了一个整型数组 `arr` 和一个指针数组 `p`。然后,我们使用循环将 `p` 数组中的每一个指针都指向 `arr` 数组中的相应元素。接着,我们使用冒泡排序对 `p` 数组进行排序,排序时使用指针的值进行比较。最后,我们输出排序后的结果,即指向 `arr` 数组中元素的指针所指向的值。
字符串排序,指针数组做函数参数
字符串排序可以使用指针数组作为函数参数来实现。具体步骤如下:
1.定义一个指针数组,将需要排序的字符串存储在其中。
2.定义一个函数,函数的参数为指向指针数组的指针,和字符串个数。
3.在函数中使用冒泡排序、快速排序等算法进行排序。
4.排序完成后,指针数组中存储的字符串就是有序的。
下面是一个使用指针数组实现字符串排序的示例代码:
```c
#include <stdio.h>
#include <string.h>
void sort_string(char *s[], int n) {
int i, j;
char *temp;
for (i = 0; i < n-1; i++) {
for (j = i+1; j < n; j++) {
if (strcmp(s[i], s[j]) > 0) {
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
}
}
int main() {
char *str[] = {"hello", "world", "apple", "banana", "orange"};
int n = sizeof(str) / sizeof(char*);
sort_string(str, n);
for (int i = 0; i < n; i++) {
printf("%s ", str[i]);
}
return 0;
}
```
运行结果为:
```
apple banana hello orange world
```
在上面的代码中,sort_string 函数使用冒泡排序算法对指针数组中的字符串进行排序。在 main 函数中,首先定义了一个指针数组 str,然后调用 sort_string 函数对其中的字符串进行排序,最后输出排序后的结果。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)