冒泡排序插入排序基数排序考试代码
来源:互联网 发布:python 月份加减 编辑:程序博客网 时间:2024/04/30 03:39
#include <stdio.h>#include <stdlib.h>#include <string.h>void Readnumber(int n,int a[]);int bubble_sort(int *a,int k,int n);int selection_sort(int *a,int k,int n);void Printnumber(int n,int a[]);void swap(int *a,int *b);int main(){ int *a,b,n,ret,k,result; printf("please input the number of a:\n"); ret=(scanf("%d",&n)); getchar(); if(ret!=1) { printf("the input is wrong!\n"); fflush(stdin); exit(1); } else { if(n<=0) { printf("the input is wrong!\n"); exit(2); } else { a=(int *)malloc(sizeof(int)*n); Readnumber(n,a); Printnumber(n,a); printf("what kind of way do you want:1 represent bubble and 2 represent select\n"); ret=scanf("%d",&b); getchar(); if((ret!=1)||(b>2)||(b<1)) { printf("the input is wrong!\n"); fflush(stdin); exit(4); } printf("please input the number of k:\n "); ret=(scanf("%d",&k)); getchar(); if((ret!=1)||(k>n)||(k<=0)) { printf("the input is wrong!\n"); fflush(stdin); exit(5); } switch(b) { case 1: result=bubble_sort(a,k,n); break; case 2: result=selection_sort(a,k,n); break; default: printf("the number is wrong\n"); break; } printf("The k th largest number is %d",result); } } return 0;}void Readnumber(int n,int a[]){ for(int i=0; i<n; i++) { printf("please input the number :\n"); int ret=(scanf("%d",&a[i])); getchar(); if(ret!=1) { printf("the input is wrong!\n"); fflush(stdin); exit(3); } }}void Printnumber(int n,int a[]){ for(int i=0; i<n; i++) { printf("%d\t",a[i]); } printf("\n");}int selection_sort(int *a,int k,int n){ int i,j; for(i=0; i<k; i++) { for(j=i+1; j<n; j++) { if(a[i]<a[j]) swap(&a[i],&a[j]); } } return a[k-1];}int bubble_sort(int *a,int k,int n){ int i,j,m,t=0; for(i=n-1;t>k,i>0; i--) { for(j=0;j<i;j++) { if(a[j]>a[j+1]) swap(&a[j],&a[j+1]); } t++; } return a[n-k];}void swap(int *a,int *b){ int temp; temp=*a; *a=*b; *b=temp;}int csort(int *data,int size,int k){ int *counts,*temp; int i,j; if((counts=(int*)malloc(sizeof(int)*k))==NULL) goto Exit; if((temp=(int*)malloc(sizeof(int)*size))==NULL) goto Exit; for(i=0;i<k;i++) { counts[i]=0; } for(j=0;j<size;j++) { counts[data[j]]=counts[data[j]]+1; } for(i=1;i<k;i++) { counts[i]=counts[i]+counts[i-1]; } for(j=size-1;j>=0;j--) { temp[counts[data[j]-1]]=data[j]; counts[data[j]]=counts[data[j]]-1; } memcpy(data,temp,size*sizeof(int)); free(counts); free(temp); return 0; Exit: if(counts!=NULL) free(counts); if(temp!=NULL) free(temp);}
1 0
- 冒泡排序插入排序基数排序考试代码
- 冒泡排序,插入排序,基数排序,交互排序算法
- C# 插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序
- 八大经典排序算法基本思想及代码实现(插入排序,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序,基数排序)
- 冒泡排序、选择排序、插入排序代码
- 20171109冒泡排序 插入排序 基数排序算法问题
- 快速排序 选择排序 插入排序 冒泡排序 堆排序 归并排序 基数排序
- 插入排序、冒泡排序、选择排序、希尔排序、快速排序、归并排序、堆排序和LST基数排序的C++代码实现
- Java实现排序(快速排序、冒泡排序、选择排序、基数排序、插入排序)
- C++算法 冒泡排序,快速排序,插入排序,希尔排序,计数排序,基数排序 性能比较
- 冒泡排序、选择排序、插入排序、希尔排序、快速排序、基数排序
- 选择排序、冒泡排序、插入排序、基数排序、快速排序、归并排序完整C++实现
- 各种排序算法总结----基数排序、归并排序、插入排序、冒泡排序、选择排序、快速排序、堆排序、希尔排序
- 【更新】排序算法比较:插入排序,冒泡排序,归并排序,堆排序,快速排序,计数排序,基数排序,桶排序
- 各种常见的排序,冒泡排序,选择排序,插入排序,希尔排序,堆排序,快速排序,基数排序,桶排序
- 稳定排序之冒泡、插入、归并以及基数排序
- 排序 简单排序(冒泡,插入)先进排序(快排,归并)堆排序,基数排序
- 已完成以下算法:冒泡排序,插入排序,希尔排序,快速排序,基数排序
- Fatal error compiling: 无效的目标发行版: 1.8 -> [Help 1]
- 小谈人工神经网络
- Numpy的array的布尔型索引与赋值
- Java中int和Integer关系是比较微妙的
- spring启动时自动加载方法
- 冒泡排序插入排序基数排序考试代码
- 数据恢复:在Linux上恢复删除了的文件
- Fragment的管理者
- Android初级第八讲之应用如何保活
- 数据结构上机测试1:顺序表的应用
- Java中根据模板导出数据到word的解决方案
- 2014年汕头市选拔赛普级组 数数
- python套利系列之价差分析--python学习笔记22
- VMwareWorkstation 12安装Windows7x64时报错:units specified don't exist SHSUCDX should can't install 解决