关于排序法的c++实例(一)
来源:互联网 发布:三菱fx 2n编程手册 编辑:程序博客网 时间:2024/06/18 06:53
这里面的排序发都是相对简单的,好理解的,我把他们整理了下打包在一个程序里。还有堆排序啊,或者快速排序什么的还没弄懂呢,以后再发啦~
#include<iostream>using namespace std;const int size=20;void InsertionSort(int*,int);void ShellSort(int*,int);void SelectionSort(int*,int);void HeapSort(int*,int); void BubbleSort(int*,int);int main(){int data[size],n,i=0;cout<<"The program will put numbers in order(small to big)\n";cout<<"Enter the array size (at most 20).\n";while(!(cin>>n)||(n>=size)||(n<1)){cin.clear();cin.get();cout<<"data wrong!\n";cout<<"Another input!\n ";}cout<<"Enter the "<<n<<" numbers\n";cin>>data[0];while(cin&&i<n-1){i++;cin>>data[i];} InsertionSort(data,n); ShellSort(data,n); SelectionSort(data,n); // HeapSort(data,n); BubbleSort(data,n); // QuickSort(data,n); } void InsertionSort(int data[],int size){ int i,j;int temp;for (i = 0; i<=size;i++){temp = data[i];j=i-1;while((j>=0) && (data[j] > temp)) { data[j+1] = data[j];j--;} data[j+1] = temp; } cout<<"InsertionSort:\n"; for(int k=0;k<size;k++) cout<<data[k]<<' '; cout<<endl;} void ShellSort(int data[],int size){ for (int gap = size / 2; gap > 0; gap /= 2) for (int i = gap; i < size; ++i) { int key = data[i]; int j = 0; for( j = i -gap; j >= 0 && data[j] > key; j -=gap) { data[j+gap] = data[j]; } data[j+gap] = key; } cout<<"ShellSort:\n"; for(int k=0;k<size;k++) cout<<data[k]<<' '; cout<<endl;}void SelectionSort(int data[], int size){ int i, j, temp, pmin; for(i = 0; i < size - 1; i ++) { pmin = i; for(j = i + 1; j < size; j ++) if(data[pmin] > data[j]) pmin = j; if(pmin != i) { temp = data[pmin]; data[pmin] = data[i]; data[i] = temp; } } cout<<"SelectionSort:\n"; for(int k=0;k<size;k++) cout<<data[k]<<' '; cout<<endl;}void HeapSort(int data[],int size){}void BubbleSort(int data[],int size){int temp;int i,j;for (i = 0; i < size; i++) { for (j =0; j <size-i-1; j++) { if (data[j] > data[j+1]) { temp = data[j+1]; data[j+1] = data[j]; data[j] = temp; } } } cout<<"BubbleSort:\n"; for(int k=0;k<size;k++) cout<<data[k]<<' '; cout<<endl;}
0 0
- 关于排序法的c++实例(一)
- C语言中关于排序问题(一冒泡排序)
- 关于排序算法的理解(一)
- C实例---快速排序(冒泡排序)
- 快速排序法一(C)
- 倒排序的应用实例一
- 关于String类的一些用法实例(一)
- c语言的冒泡排序简单实例
- C 排序算法(一)
- 关于 类的 virtual 实例 说明 (c#)
- 数据结构实例<一>(数组排序)入门
- 【C语言经典实例】-冒泡法排序
- C实例---插入排序(Shell)
- c语言中关于冒泡排序法的应用
- 冒泡排序实例(C#)
- 一个关于CallBack机制的实例(C#)
- C#JQuery学习(一)列表的排序+分页
- sort.c(用C语言实现排序的实例)
- 字节对齐
- android ScreenLockReceiver 锁屏监听
- 黑马程序员-我的第十二篇学习日记:OC中空指针,野指针,僵尸对象,retain和release基本使用
- Change the font and cell color in an Excel document
- 爱不是逃避是努力
- 关于排序法的c++实例(一)
- 常用一些Java基础算法积累
- Add formatting to the cell in an Excel document
- PHP通过面向对象实现数据库备份
- Java封装自己的Api
- Word Search
- LED 流水灯闪烁
- java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection可能问题之一
- 第六届SeedCoder比赛赛题_算法组