c++中用函数模板用冒泡排序法从小到大排列数组元素

强调用函数模板 排列数组元素,高手进来试一试 ,很具有挑战性
(冒泡排序不是重点)重要的是用函数模板将排序好的数列输出,主函数怎样写 主函数与模板函数的连接

第1个回答  2007-05-06
#include <iostream>

using namespace std;

template <typename T>
T* pop_sort (T* a)
{
for (T i = 0; i < 9; i++) //从右到左的循环因子,用以计算里圈循环的空位
{
for (T j = 0; j < 9 - i; j++)
if (a[j] > a[j + 1])
{
T min = a[j];
a[j] = a[j + 1];
a[j + 1] = min;
}
}
return *a;
}

int main(int argc, char* argv[])
{

return 0;
}
第2个回答  2007-05-05
#include <iostream>
using namespace std;
int main()
{
int a[10];
int i,j,t;
cout<<"input 10 numbers :"<<endl;
for (i=0;i<10;i++)
cin>>a[i];
cout<<endl;
for (j=0;j<9;j++)
for(i=0;i<9-j;i++)
if (a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
cout<<"the sorted numbers :"<<endl;
for(i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}

不知道这是不是函数模板,但肯定是个冒泡例子,路过

\/\/用c++将N个数从小到大排列输出,数据类型可以是整型,单精度型,双精度...
system("pause");} 其实最简单的解决方法是用sort函数,只需#include<algorithm>就可以了,默认升序排序。sort(数组首地址即数组名,首地址+数组长度,排序方式)如果不写最后的参数则默认升序排列,以上面的程序为例,可以这样写:sort(a,a+n); \/\/前面不要忘记头文件 这个方法很简单的 ...

用C++语言编写程序实现:设计一个函数模板,实现用冒泡法对10 个某类型...
冒泡排序算法的运作如下:1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3、针对所有的元素重复以上的步骤,除了最后一个。4、持续每次对越来越少的元素重复上面的步骤,直到...

如何用C++描述分块查找的算法
模板函数BinarySearch在a[0]<=a[1]<=...<=a[n-1]共n个升序排列的元素中搜索x,找到x时返回其在数组中的位置,否则返回-1。容易看出,每执行一次while循环,待搜索数组的大小减少一半,因此整个算法在最坏情况下的时间复杂度为O(log n)。在数据量很大的时候,它的线性查找在时间复杂度上的优劣一...

编一个程序,用同一个函数名对n个数据进行从小到大排序
\/\/VC++6.0下调试通过。希望能对你有用 include <iostream> using namespace std;template <class T> void sort(T* a, int n){ int t;T temp;for (int i=0; i<n-1; i++){ t=i;for (int j=i+1; j<n; j++){ if (*(a+t)>*(a+j))t=j;} temp=*(a+i);(a+i)...

sort函数的具体用法?
\\r\\nSort函数使用模板:\\r\\nSort(start,end,排序方法)\\r\\n下面就具体使用sort()函数结合对数组里的十个数进行排序做一个说明!\\r\\n例:sort函数没有第三个参数,实现的是从小到大\\r\\n#include\\r\\n#include\\r\\nusing namespace std;\\r\\nint main()\\r\\n{\\r\\nint a[10]={9,6,3,8,5...

怎么用重载的方法把整型,字符型,字符串用同名函数sort()进行排序?
void sort(T (¶m)[N]) \/\/list是T类型的数组, N为数组大小,使用数组的引用传递 { \/\/冒泡排序 for (int i=0; i<N-1; ++i){ for (int j=0; j<N-i-1; ++j){ if (param[j] > param[j+1])\/\/从小到大排序 { \/\/交换 T temp = param[j];param[j] = param[j+1];...

c++20 array的用法总结(附赠编译期排序)
利用C++20的consteval特性,数组排序可在编译期完成,无需关注冒泡排序效率问题。即使实现快速排序或其他算法,也是可行的。输出示例:排序后的数组为1 2 3 4,计算数组之和为10。此外,还能够计算数组的编译期和等其他功能,利用accumulate函数,C++20中的constexpr。输出示例:计算数组之和为144。编译期...

想要一个5000行以上的代码程序或模块(希望用C++或者C语言编写)
void order_by_date() \/\/已完成的函数 5\/5{ long a[100],b[100]; int count; int i,j; long temp; system("cls");\/\/清屏 count=Read_all(); \/\/读全部记录至结构ss[0...49] for(i=0;i<count;i++) a[i]=chg(i);\/\/冒泡排序法 for(i=0;i<count;i++) b[i]=a[i]; printf(...

有限数字的排列方式的计算
首先我们选择一个中间值middle程序中我们使用数组中间值,然后把比它小的放在左边,大的放在右边(具体的实现是从两边找,找到一对后交换)。然后对两边分别使用这个过程(最容易的方法——递归)。1.快速排序:#include <iostream.h>void run(int* pData,int left,int right){ int i,j; int middle,iTemp; i = ...

C语言sort函数如何使用
1 待排序数组首地址 2 数组中待排序元素数量 3 各元素的占用空间大小 4 指向函数的指针,用于确定排序的顺序 这个函数必须要自己写比较函数,即使要排序的元素是int,float一类的C语言基础类型。以下是qsort的一个例子:include<stdio.h> include<stdlib.h> int comp(const void*a,const void*b)\/\/...

相似回答