排序
来源:互联网 发布:js全局变量传进函数 编辑:程序博客网 时间:2024/05/01 11:23
#include "stdafx.h"
#include <windows.h>
void swap(int *p1,int *p2);
void maopaoSort(int arr[]);
void selectSort(int arr[]);
void insertSort(int arr[]);
void kuaisuSort(int arr[],int left,int right);
void display(int arr[]);
int main()
{
int arr[NUM]={5,6,1,3,2,4};
printf("%s","排序前的数组:");
display(arr);
//maopaoSort(arr);
//selectSort(arr);
//insertSort(arr);
kuaisuSort(arr,0,NUM-1);
printf("%s","/n排序后的数组:");
display(arr);
system("pause");
return 0;
}
void swap(int *p1,int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
void selectSort(int arr[])
{
for(int i=0;i<NUM;i++)
{
int m=i;
for(int j=i+1;j<NUM;j++)
{
if(arr >arr[j])
m=j;
}
if(m!=i)
swap(&arr,&arr[i]);
}
}
void maopaoSort(int arr[])
{
for(int i=0;i<NUM;i++)
for(int j=0;j<NUM-1-i;j++)
if(arr[j]>arr[j+1])
swap(&arr[j],&arr[j+1]);
}
void insertSort(int arr[])
{
for(int i=1;i<NUM;i++)
{
int temp=arr[i];
int j=i-1;
while(temp<arr[j])
{
arr[j+1]=arr[j];
if(--j==-1)
break;
}
arr[j+1]=temp;
}
}
void kuaisuSort(int arr[],int left,int right)
{
if(left<right)
{
int primaryKey=arr[left];
int low=left;
int hight=right;
while(left<right){
while(left<right&&arr[right]>primaryKey)right--;
arr[left]=arr[right];
while(left<right&&arr[left]<primaryKey)left++;
arr[right]=arr[left];
}
arr[right]=primaryKey;
kuaisuSort(arr,low,left-1);
kuaisuSort(arr,left+1,hight);
}
}
void display(int arr[])
{
for(int i=0;i<NUM;i++)
printf("%d ",arr[i]);
}
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- .net从gridview控件导出数据到excel续
- 关于对成功者和失败者的态度
- 线程Semaphore的简单实例
- SQL中的内连接和外连接
- ICMP协议
- 排序
- css兼容IE8的一个简便方法
- 我的梦想在何处落地?
- HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等
- IT人职业道德的反思
- Silverlight游戏设计(Game Design):(十五)如果还有梦(完)
- 我们应该知道了
- unsiged char和char有区别
- 基于Silverlight + WCF设计实现汽车实时数据监控