解题思路:快速排序的思想类似与打擂台(反着的打擂台),通过对数组遍历找到最小的一个元素,用一个变量来保存最小元素的下标,之后在和第一个元素交换,然后对第二个元素进行同样的操作。
注意事项:
参考代码:
#include<stdio.h> void swap(int *a,int *b) //交换两个数 { int temp = *a; *a = *b; *b = temp; } void selection_sort(int arr[], int len) { int i,j; for (i = 0 ; i < len - 1 ; i++) { int min = i;//存放第一个数的下标 for (j = i + 1; j < len; j++) //找到最小的一个数 if (arr[j] < arr[min]) min = j; swap(&arr[min], &arr[i]); //交换这两个数,使得第一个未最小的 } } int main() { int a[10] = {0}; for(int i = 0;i<10;i++) { scanf("%d",&a[i]); } selection_sort(a,10); for(int j = 0;j<10;j++) { printf("%d\n",a[j]); } return 0; }
0.0分
1 人评分
C语言训练-数字母 (C语言代码)浏览:608 |
1050题解(结构体数组与结构体指针的使用)浏览:1108 |
蛇行矩阵 (C语言代码)浏览:505 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:617 |
老王赛马 (C++代码)浏览:905 |
汽水瓶 (C语言代码)浏览:536 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:1200 |
求圆的面积 (C语言代码)浏览:657 |
C语言训练-最大数问题 (C语言代码)浏览:591 |
字符串的修改 (C语言代码)浏览:1143 |