用冒泡,选择,快速排序的方法排序
2015-09-08 22:33
363 查看
冒泡排序法
#include<stdio.h>
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void sort(int x[],int n)
{
int i,j;
for(i=0;i<n-1;i++) //一共进行n-1次循环
{
for(j=0;j<n-1-i;j++)
{
if(x[j]>x[j+1])
swap(&x[j],&x[j+1]);
}
}
}
int main()
{
int i;
int a[10]={9,8,7,6,5,4,3,2,1,0};
sort(a,10);
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
return 0;
}
选择排序法
#include<stdio.h>
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void sort(int x[],int n)
{
int min,i,j;
for(i=0;i<n-1;i++)
{
min=i; //min标记当前最小元素的下标
for(j=i+1;j<n;j++)
{
if(x[j]<x[min])
min=j;
}
if(min!=i)
{
swap(&x[i],&x[min]);
}
}
}
void main()
{
int i;
int a[10]={9,8,7,6,5,4,3,2,1,0};
sort(a,10);
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
}
快速排序法
#include<stdio.h>
void quicksort(int arr[10],int l,int r)
{
if(l<r)
{
int i=l,j=r;
int x=arr[l];
while(i<j)
{
while(i<j&&arr[j]>x)
j--;
if(i<j)
{
arr[i]=arr[j];
i++;
}
while(i<j&&arr[i]<x)
i++;
if(i<j)
{
arr[j]=arr[i];
j--;
}
}
arr[i]=x;
quicksort(arr,l,i-1);
quicksort(arr,i+1,r);
}
}
int main()
{
int i;
int a[10]={9,8,7,6,5,4,3,2,1,0};
quicksort(a,0,9);
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
return 0;
}
冒泡排序法
#include<stdio.h>
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void sort(int x[],int n)
{
int i,j;
for(i=0;i<n-1;i++) //一共进行n-1次循环
{
for(j=0;j<n-1-i;j++)
{
if(x[j]>x[j+1])
swap(&x[j],&x[j+1]);
}
}
}
int main()
{
int i;
int a[10]={9,8,7,6,5,4,3,2,1,0};
sort(a,10);
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
return 0;
}
选择排序法
#include<stdio.h>
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void sort(int x[],int n)
{
int min,i,j;
for(i=0;i<n-1;i++)
{
min=i; //min标记当前最小元素的下标
for(j=i+1;j<n;j++)
{
if(x[j]<x[min])
min=j;
}
if(min!=i)
{
swap(&x[i],&x[min]);
}
}
}
void main()
{
int i;
int a[10]={9,8,7,6,5,4,3,2,1,0};
sort(a,10);
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
}
快速排序法
#include<stdio.h>
void quicksort(int arr[10],int l,int r)
{
if(l<r)
{
int i=l,j=r;
int x=arr[l];
while(i<j)
{
while(i<j&&arr[j]>x)
j--;
if(i<j)
{
arr[i]=arr[j];
i++;
}
while(i<j&&arr[i]<x)
i++;
if(i<j)
{
arr[j]=arr[i];
j--;
}
}
arr[i]=x;
quicksort(arr,l,i-1);
quicksort(arr,i+1,r);
}
}
int main()
{
int i;
int a[10]={9,8,7,6,5,4,3,2,1,0};
quicksort(a,0,9);
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
return 0;
}
相关文章推荐
- 使用指针数组访问一维数组数据
- JSP基本语句用法总结
- iOS开发个人独立博客收集
- 常用事件响应实习方式
- JAVA中堆和栈的区别
- C# 文件操作的工具类
- 制作一个USB 多启动盘(MBR)
- 反射
- Android:利用selector优化布局,提升用户体验
- enumeration与itertor
- CSDN-markdown编辑器
- 15_09_08 返回值类型错误
- Python time模块函数与时间格式关系图解
- 【J2SE】——基础宏总
- android双进程守护
- 类加载器和代理
- Bitmap优化小结
- 1089. Insert or Merge (25)
- C#高级------字符串练习题
- 二十种实战调优MySQL性能优化的经验