冒泡排序,插入排序,基数排序,交互排序算法
来源:互联网 发布:数据同化 知乎 编辑:程序博客网 时间:2024/05/17 05:05
一、实验内容
1、输入2-10个不为零的正整数,遇到0,代表输入结束。
2、数字选择排序方法,1-冒泡排序、2-插入排序、3-基数排序。
3、使用所选排序方法的排序,结果输出所用方法以及结果,每个数之间用“,”隔开,中间不要有空格。
//============================================================================// Name : test02_201100300097.cpp// Author : ZhengDujin// Created on : 2012-10-27// Copyright : Your copyright notice// Compiler : MinGCC// Language : C/C++// Description : test02_201100300097 in C++, Ansi-style//============================================================================#include <iostream>using namespace std;void BubbleSort(int *a,int len){//冒泡排序int i,j,temp;for(i=0;i<len-1;i++){for(j=len-1;j>i;j--){if(a[j-1]>a[j]){temp=a[j-1];a[j-1]=a[j];a[j]=temp;}}}for(i=0;i<len;i++){if(i!=len-1) cout<<a[i]<<","; else cout<<a[i];}}void InsertionSort(int *a,int len){//插入排序int i,j,t;for(i=1;i<len;i++){t=a[i];j=i-1;while(j>=0&&t<a[j]){a[j+1]=a[j];j--;}a[j+1]=t;}for(i=0;i<len;i++){if(i!=len-1) cout<<a[i]<<","; else cout<<a[i];}}int maxbit(int data[],int n){ int d=1; for(int i=0;i<n;i++){ int c=1; int p=data[i]; while(p/10){ p=p/10; c++; } if(c>d) d=c; } return d;}void RadixSort(int data[],int n){//基数排序int tmp[n];int count[n]; int d=maxbit(data,n); int r=1; for(int j=0;j<d;j++){ for(int i=0;i<10;i++) count[i]=0; for(int i=0;i<n;i++){ int k=data[i]/r; int q=k%10; count[q]++; } for(int i=1;i<10;i++){ count[i]+=count[i-1]; } for(int j=n-1;j>=0;j--){ int p=data[j]/r; int s=p%10; tmp[count[s]-1]=data[j]; count[s]--; } for(int i=0;i<n;i++){ data[i]=tmp[i]; } r=r*10; } for(int i=0;i<n;i++){if(i!=n-1) cout<<data[i]<<","; else cout<<data[i];}}int main(){int num=10,temp,choice,size=10; int tlist[num]; cout<<"Input"<<endl; for(int i=0;i<=num-1;i++){cin>>temp;if(temp==0){size=i; break; }tlist[i]=temp;}int list[size];for(int i=0;i<=size-1;i++){list[i]=tlist[i];}cout<<"1-冒泡排序,2-插入排序,3-基数排序"<<endl;cin>>choice;cout<<"Output"<<endl;if(choice==1){cout<<"冒泡排序"<<endl;BubbleSort(list,size); }if(choice==2){cout<<"插入排序"<<endl;InsertionSort(list,size);}if(choice==3){cout<<"基数排序"<<endl; RadixSort(list,size);}cout<<endl;cout<<"End"<<endl; return 0;}
- 冒泡排序,插入排序,基数排序,交互排序算法
- 20171109冒泡排序 插入排序 基数排序算法问题
- C++算法 冒泡排序,快速排序,插入排序,希尔排序,计数排序,基数排序 性能比较
- 各种排序算法总结----基数排序、归并排序、插入排序、冒泡排序、选择排序、快速排序、堆排序、希尔排序
- 【更新】排序算法比较:插入排序,冒泡排序,归并排序,堆排序,快速排序,计数排序,基数排序,桶排序
- 冒泡排序插入排序基数排序考试代码
- 已完成以下算法:冒泡排序,插入排序,希尔排序,快速排序,基数排序
- 冒泡排序算法,插入排序
- 排序算法(插入排序、shell排序、冒泡排序、选择排序、合并排序、堆排序、快速排序、计数排序、基数排序、桶排序)
- 经典排序算法设计与分析(插入排序、冒泡排序、选择排序、shell排序、快速排序、堆排序、分配排序、基数排序、桶排序、归并排序)
- 经典排序算法设计与分析(插入排序、冒泡排序、选择排序、shell排序、快速排序、堆排序、分配排序、基数排序、桶排序、归并排序)
- 排序算法----冒泡排序+插入排序+选择排序+快速排序+希尔排序+堆排序+归并排序+计数排序+基数排序+桶排序(c语言)
- 选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法, 冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。
- 选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。
- C# 插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序
- 排序算法复习(Java实现):插入,冒泡,选择,Shell,快速排序, 归并排序,堆排序,桶式排序,基数排序
- 基础排序算法总结(插入、选择、冒泡、合并、二分查找、堆排序、快速排序、基数排序、桶排序、计数排序)
- 排序算法:冒泡排序&插入排序
- 在2013年将会改变Web发展的5类API
- ini 文件另存为 UTF-8 将无法使用 GetPrivateProfileX 系列读取
- Android开发环境搭建全程演示(jdk+eclipse+android sdk)
- Web开发者必知的8个超实用API
- java_增强for循环注意的几点
- 冒泡排序,插入排序,基数排序,交互排序算法
- 短信CMPP3.0自定义和错误码
- QT 常见设置
- jira 创建问题时发生错误 && QC 没有注册类别
- kernel 启动过程之三, start_kernel()函数 概叙!init/main.c .
- linux的用户管理
- uva 工具网站
- 数据结构《链式栈的存储》
- ubuntu server 下安装nginx