c++如何实现排序和查找
这篇文章主要介绍c++如何实现排序和查找,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
创新互联是一家专注于网站设计制作、成都网站设计与策划设计,谷城网站建设哪家好?创新互联做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:谷城等地区。谷城做网站价格咨询:028-86922220
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++如何实现排序和查找”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!
当前题目:c++如何实现排序和查找
文章转载:http://pwwzsj.com/article/ihsjgh.html