千家信息网

c++如何实现排序和查找

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍c++如何实现排序和查找,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、用冒泡法对数组进行排序(升序)#include #include void sort(
千家信息网最后更新 2025年02月01日c++如何实现排序和查找

这篇文章主要介绍c++如何实现排序和查找,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1、用冒泡法对数组进行排序(升序)

#include #include 
void sort(int a[], int n){ int i, j, t; for (i = 0; i < n-1 ; i++) { for (j = 0; j < n-1; j++) { if (a[j] > a[j+1]) { t = a[j]; a[j] = a[j+1]; a[j+1] = t; } } }}
int main(){ int a[5], i; for (i = 0; i < 5; i++) { printf("input a[%d]=", i); scanf("%d", &a[i]); } sort(a, 5); for (i = 0; i < 5; i++) { printf("%4d", a[i]); } system("pause"); return 0;}

2、用插入法排序将输入到数组中的元素进行排序

#include #include 
void fun(int a[], int n){ int k, j, t; for (j = 1; j < n; j++) { t = a[j]; k = j - 1; while (k >= 0 && t > a[k]) { a[k + 1] = a[k]; k--; } a[k + 1] = t; }}
int main(){ int a[5], i; for (i = 0; i < 5; i++) { printf("input a[%d]=", i); scanf("%d", &a[i]); } fun(a, 5); for (i = 0; i < 5; i++) { printf("%4d", a[i]); } system("pause"); return 0;}

3、用选择法将输入的10个数进行排序

#include #include 
int main(){ int i, j, min, tem, a[10]; for (i = 0; i < 10; i++) { printf("input a[%d]=", i); scanf("%d", &a[i]); } for (i = 0; i < 10; i++) { printf("%d", a[i]); } for (i = 0; i < 10 - 1; i++) { min = i; for (j = i + 1; j < 10; j++) { if (a[min] > a[j]) { min = j; } } tem = a[i]; a[i] = a[min]; a[min] = tem; } printf("\n"); for (i = 0; i < 10; i++) { printf("%d", a[i]); } system("pause"); return 0;}

4、用折半查找法,将查看输入的数字是否在10个元素的升序数组中,如果在是第几个

#include #include 
int main(){ int a[10] = { 12,32,45,62,71,76,80,85,90,95 }; int num, bott, top, mid; printf("input a number:"); scanf("%d", &num); bott = 0; top = 9; while (bott <= top) { mid = (bott + top) / 2; if (num == a[mid]) { printf("%d是第%d个数", num, mid + 1); break; } else if (num < a[mid]) { top = mid - 1; } else { bott = mid + 1; } } if (bott > top) { printf("no\n"); } system("pause"); return 0;}

以上是"c++如何实现排序和查找"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0