数据结构——改进的冒泡排序(c++)
来源:互联网 发布:linux运维和java开发 编辑:程序博客网 时间:2024/06/15 02:17
ImprovedBubbleSorter.h
//ImprovedBubbleSorter.h//优化的起泡排序类#include "Sorter.h"template <class Record>class ImprovedBubbleSorter:public Sorter<Record>{public: void Sort(Record Array[],int n);};//优化的起泡排序,Array[]为待排序数组,n为数组长度template <class Record>void ImprovedBubbleSorter<Record>::Sort(Record Array[], int n) { bool NoSwap; int i,j; for(i=0;i<n-1;i++) { NoSwap=true; for(j=n-1;j>i;j--) { if(Array[j]<Array[j-1]) { swap(Array,j,j-1); NoSwap=false; } } if(NoSwap) return ; }}
Sorter.h
//Sorter.h#if !defined(AFX_Sorter)#define AFX_Sorter//总排序类template <class Record>class Sorter{protected: static void swap(Record Array[],int i,int j); //交换数组中的两个记录public: virtual void Sort(Record Array[],int n)=0; //对数组Array进行排序 void PrintArray(Record array[], int n); //输出数组内容};//交换数组中的两个记录template <class Record>void Sorter<Record>::swap(Record Array[],int i,int j){ Record TempRecord = Array[i]; Array[i] = Array[j]; Array[j] = TempRecord;}//输出数组内容template <class Record>void Sorter<Record>::PrintArray(Record Array[], int n){ for(int i=0;i<n;i++) cout<<Array[i]<<" "; cout<<endl;} #endif
ImprovedBubbleSort.cpp
//ImprovedBubbleSort.cpp//优化的起泡排序#include <iostream.h>#include <stdlib.h>#include <string.h>#include <time.h>#include "ImprovedBubbleSorter.h"const int N=1000;// 设定随即函数的种子inline void Randomize() { srand(1); }//返回一个0到n-1之间的随机数inline int Random(int n) { return rand() % (n); }void main(){ ImprovedBubbleSorter<int> s; int Array[8]; for(int i=0;i<8;i++) { Array[i]=Random(10); } s.Sort(Array,8); s.PrintArray(Array,8);}
0 0
- 数据结构——改进的冒泡排序(c++)
- 笔试,面试,C/C++,数据结构单链表排序(改进冒泡排序)
- 改进的冒泡排序算法实现 (C#)
- C语言的冒泡排序法改进
- 交换排序(冒泡排序—改进、快速排序)
- 冒泡排序再学习改进冒泡排序(c++)
- 数据结构&算法实践—【排序|交换排序】冒泡排序及改进
- 鸡尾酒排序(改进的冒泡排序)
- 数据结构之排序算法(二)-冒泡排序及改进
- 常用排序算法——鸡尾酒排序(改进的冒泡排序)
- 冒泡排序的改进
- 冒泡排序的改进
- 冒泡排序的改进
- 冒泡排序的改进
- 改进的冒泡排序
- 改进的冒泡排序
- 改进的冒泡排序
- 改进的冒泡排序
- MFC 对话框操作
- 数据结构——希尔排序(c++)
- 2015四川省赛 scu oj 4445 Right turn
- 第十三周项目1-动物这样叫(2)
- java中的几种内部类
- 数据结构——改进的冒泡排序(c++)
- TCP三次握手和四次挥手协议
- 操作系统如何把程序从磁盘加载到内存并创建进程的?
- 【Ubuntu Server版安装提示无法找到ISO文件】 解决方案
- C++对ASCII文件的读写操作
- C++ const
- fastjson
- Java 两大数相乘
- Restore IP Addresses