简单-基础排序
来源:互联网 发布:百度bae数据库 编辑:程序博客网 时间:2024/06/06 05:48
今天写了排序的几种算法。都是最简单的,也是最基础的,下面是代码:
#include <stdio.h> #include <stdlib.h> //#include <iostream> //using namespace std; int n; #define Max 200int p[Max];int q[Max];/*void Bubble(int *p,int n) { int t,j,temp; for(t=1;t<n;t++){ for(j=0;j<n-t;j++) if(p[j]>p[j+1]){ temp=p[j]; p[j]=p[j+1]; p[j+1]=temp; } } }*/ /*void Insert_sort(int *p,int n){ int i,j,temp; for(i=1;i<n;i++){ temp=p[i]; for(j=i-1;j>=0;j--) if(p[j]>temp) p[j+1]=p[j]; else break; p[j+1]=temp; } }*/ /*void Swap(int &x,int &y){ int temp=x; x=y; y=temp; } int Partition(int *p,int start,int end) { int pivot=p[start]; while(start<end){ while(start<end && p[end]>=pivot) end--; Swap(p[end],p[start]); while(start<end && p[start]<=pivot) start++; Swap(p[end],p[start]); } return start; } void Qsort(int *p,int start,int end) { if(start<end) { int temp=Partition(p,start,end); Qsort(p,start,temp); Qsort(p,temp+1,end); } }*/ void Merge(int start,int mid,int end) { int i=start,j=mid+1,k=start; while(i<=mid && j<=end){ if(p[i]<=p[j]) q[k++]=p[i++]; else q[k++]=p[j++]; } while(i<=mid){ q[k++]=p[i++]; } while(j<=end){ q[k++]=p[j++]; } for(i=start;i<=end;i++)p[i]=q[i];} void merge_sort(int start,int end) { if(start<end){ int mid=(start+end)>>1; merge_sort(start,mid); merge_sort(mid+1,end); Merge(start,mid,end); } } int main() { while(scanf("%d",&n),n){ int i; for(i=0;i<n;i++) scanf("%d",&p[i]); //Bubble(p,n); //Insert_sort(p,n); // Qsort(p,0,n-1); merge_sort(0,n-1); //cout << "rlkgrklj" << endl; for(i=0;i<n;i++) printf("%d ",p[i]); } return 0; }
- 简单-基础排序
- 【基础算法】排序-简单排序之一(冒泡排序)
- 【基础算法】排序-简单排序之二(选择排序)
- 【基础算法】排序-简单排序之三(插入排序)
- 简单选择排序-------零基础学数据结构
- 简单选择排序-------零基础学数据结构
- [回归基础系列]-简单选择排序[JAVA]
- 基础算法——简单选择排序
- 基础算法之排序(2)--简单选择排序
- Java基础篇之----排序(快速排序、冒泡排序、堆排序、简单选择排序、 希尔排序、直接插入排序)
- 数据结构基础(9)------------简单选择排序(Simple Selection Sort)
- 数据结构基础7.1:简单排序(冒泡、选择、插入)
- OJ——1.10编程基础之简单排序
- NOI题解(1.10编程基础之简单排序)
- 算法练习第一周(基础练习,简单排序)
- 程序员面试宝典之数据结构基础----排序之快速排序(简单快速排序与改进快速排序)总结
- 三种最简单基础的排序 选择排序 冒泡排序 直接插入排序 运用了函数指针数组
- 【基础算法】排序-简单排序之四(Knuth洗牌算法)
- ubuntu中安装oracle sun java.
- 跳台阶问题|斐波那契|递归
- android_jar包导入导出与使用
- WPF中的文字修饰——上划线,中划线,基线与下划线
- C++ 面试题 汇总
- 简单-基础排序
- Android BroadCastReciver学习笔记
- xen虚拟机安装实践
- 动态修改报表选择界面选择文本
- setsockopt()用法(参数详细说明)
- 一盆茉莉花
- 【java规范】Java spi机制浅谈
- win7下 使用MFC 连接mysql 引用ado2 的解决方案
- 案头ERP书籍