这篇文章主要介绍c++如何实现排序和查找,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
1、用冒泡法对数组进行排序(升序)
#include <stdio.h>#include <stdlib.h>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 <stdio.h>#include <stdlib.h>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 <stdio.h>#include <stdlib.h>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 <stdio.h>#include <stdlib.h>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++如何实现排序和查找”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/4586915/blog/4427875