冒泡排序法排序操作模板

对int型,double型,char型数组元素进行排序。

#include<iostream>
using namespace std;
# include <string.h>
template <class stype> void bubble(stype *item,int count);

void main()
{
	char str[]="ahsdkcfgmwdlx";
	bubble(str,(int)strlen(str));
	cout<<"The sorted string is:  "<<str<<endl;
	int num[]={2,3,1,4,6,8,4,1};
	bubble(num,8);
	cout<<"The sorted numbers are:  ";
	for(int i=0;i<8;i++)
		cout<<num[i]<<" ";
	cout<<endl;
	double num1[]={1.2,3.5,1.3,5.2,2.3};
	bubble(num1,5);
	cout<<"The sorted numbers are:  ";
	for(i=0;i<5;i++)
		cout<<num1[i]<<" ";
	cout<<endl;
}
template<class stype>
void bubble(stype *item,int count)
{
	register i,j;
	stype t;
	for(i=1;i<count;i++)
		for(j=count-1;j>=i;j--)
			if(item[j-1]>item[j])
			{
				t=item[j-1];
				item[j-1]=item[j];
				item[j]=t;
			}
}

时间: 2024-10-12 14:43:17

冒泡排序法排序操作模板的相关文章

让用户输入十个数,用冒泡排序法排序

#include <stdio.h>#define N 10 void swap(int*a,int*b);int main(int argc, char *argv[]) { int a[N],i,j; printf("Enter %d number:",N); for(i=0;i<10;i++) scanf("%d",&a[i]);//输入十个数  for(i=0;i<10;i++){for(j=9;j>i;j--){ if

算法大神之路----排序(冒泡排序法)

冒泡排序法 冒泡排序法又称为交换排序法,是由观察水中冒泡变化构思而成,气泡随着水深压力而改变.气泡在水底时,水压最大,气泡最小,而气泡慢慢浮上水面时,气泡所受压力最小,体积慢慢变大. 冒泡排序比较方式是从第一个元素开始,比较相邻的元素大小,如果大小顺序有误,则对调后进行下一个元素比较.直到所有元素满足关系为止. 冒泡排序法分析 冒泡排序法平均情况下,需要比较(n-1)/2次,时间复杂度为O(n2),最好的情况只需要扫描一次,不用操作,即作n-1次比较,时间复杂度为O(n). 由于冒泡排序为相邻两

关于Java中的选择排序法和冒泡排序法

一,这种方法是直接传入一个数组进行排序(选择排序法) public static void selectSort(int arr[]){ for (int i = 0; i < arr.length-1; i++) { for (int j = i+1; j < arr.length; j++) { if(arr[j]<arr[i]){ int temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } } 二,这种事传入一个数组和一个数组个数(选择排序

一、冒泡排序法对随机生成的十个数按升序进行排序

//运用冒泡排序法对随机生成的十个数按升序进行排序 //首先分析我们用冒泡排序法对这十个数排序,即用第一个数跟第二个数比较,然后将大的放到后面,接着跟第三个比较...... //我们定义一个数组名arrInt[],长度为10,定义一个变量i来记录是第几个数 int i = 0; int j = 1; int t = 0;//定义一个空位置交换时使用 int[] arrInt=new int[10];//定义一个长度为10的数组 Random rd=new Random(); Console.Wr

数据结构:链表 &gt;&gt; 链表按结点中第j个数据属性排序(冒泡排序法)

创建结点类,链表类,测试类 1 import java.lang.Object; 2 //结点node=数据date+指针pointer 3 public class Node { 4 Object iprop; 5 public Object getIprop(int i){ 6 switch(i){ 7 case 1:iprop=num;break; 8 case 2:iprop=name;break; 9 case 3:iprop=score;break; 10 } 11 return i

选择排序法、冒泡排序法

选择排序法 int main(int argc, char *argv[]) { int i, j, iMin; int tmp; int nNums[10] = {2,123,541,32,12,74,92,50,8,21}; for(i=0;i<10-1;i++) { iMin = i;    //提取数据的每个位置 for(j=i+1;j<10;j++)  //每次循环,通过iMin获取最小值的下标. { if(nNums[iMin]>nNums[j])   //判断是否最小,比i

C语言 数组输出,冒泡排序法,沉底排序法,二维数组输出,输出字母列长度,从随机数组中找重复数

#include <stdio.h> #define sum 3+4//宏定义是原封不动的使用used for test4 #include <time.h>//used for test8~9 #include <stdlib.h>//used for test8~9 void test(){//数组输出 //int a[5]={1,2,3,4,5}; printf("array output,look,please...\n"); int a[1

选择法排序/冒泡排序法/交换排序法

这不是个新鲜的话题,是自己之前一直理解错了. int a[10] ={2,4,1,0,9,5,7,6,8,3}; 选择法排序: 第一次循环.a[0] 比较所有的的元素,最小的,跟a0交换 第二次循环,找到剩下的最小的,跟a1 交换 冒泡排序, 也是两层循环 ,  是 1-9, 在内层循环里,是从后往前,这样,一次把最小的一步一步的换到最前来, 比如 a8和a9比较,然后 a7和a8比较,依次.. 说白了,这两种排序,大同小异,时间复杂度是一样的. 交换排序法: 1次循环,跟a0比较,遇到小的,就

C语言排序算法之简单交换法排序,直接选择排序,冒泡排序

C语言排序算法之简单交换法排序,直接选择排序,冒泡排序,最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 简单交换法排序 1 /*简单交换法排序 2 根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置 3 交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动 4 不稳定 5 */ 6 #include<windows.h> 7 #include<stdio.h> 8 void main(){ 9 int i,j,arr[10