C++各种排序的实现
来源:互联网 发布:linux脚本写超大文件 编辑:程序博客网 时间:2024/05/13 02:28
#include <stdio.h>
void QuickSort(int *data,int low,int high) //快速排序
{
int i = low;
int j = high;
int temp = 0;
if(i<j)
{
temp = data[i];
while(i!=j)
{
while(i < j && data[j]>temp)
j--;
if (i<j)
{
data[i] = data[j];
i++;
}
while(i < j && data[i]<temp)
i++;
if (i<j)
{
data[j] = data[i];
j--;
}
}
data[i] = temp;
QuickSort(data,low,i-1);
QuickSort(data,i+1,high);
}
}
void InsertSort(int *pData,int num)
{
int i=0,j=0;
int temp = 0;
for (i=0;i<num;i++)
{
j = i-1;
temp = pData[i];
while(j>=0 && temp < pData[j])
{
pData[j+1] = pData[j];
j--;
}
pData[j+1] = temp;
}
}
void BinInsertSort(int *pData,int num) // 折半插入排序
{
int i=0,j=0;
int low =0 ,mid =0 ,high = 0;
int temp = 0;
for (i=0;i<num;i++)
{
temp = pData[i];
low = 0;
high = i-1;
while(low<=high)
{
mid = (low+high)/2;
if (temp < pData[mid])
{
high = mid-1;
}
else
{
low = mid+1;
}
}
for (j=i-1;j>=low;j--)
{
pData[j+1] = pData[j];
}
pData[j+1] = temp;
}
}
void BubbleSort(int *pData,int num) //冒泡排序
{
int i=0,j=0;
int temp = 0;
for (i=0;i<num;i++)
{
for (j=0;j<num-i-1;j++)
{
if (pData[j]>pData[j+1])
{
temp = pData[j];
pData[j] = pData[j+1];
pData[j+1] = temp;
}
}
}
}
void SelectSort(int *pData,int num) //选择排序
{
int i=0,j=0;
int temp = 0;
for (i=0;i<num;i++)
{
for (j=i+1;j<num;j++)
{
if (pData[i]>pData[j])
{
temp = pData[i];
pData[i] = pData[j];
pData[j] = temp;
}
}
}
}
void main()
{
int a[] = {22,84,21,24,15,27,68,25,20};
// QuickSort(a,0,8);
// InsertSort(a,9);
// BinInsertSort(a,9);
// BubbleSort(a,9);
SelectSort(a,9);
for (int k = 0;k<9;k++ )
{
printf("%d ",a[k]);
}
printf("/n");
}
- c实现的各种排序
- 各种排序方法的C语言实现
- 各种排序算法的C实现
- 各种排序算法的C实现(转载)
- 各种排序的C语言实现
- c语言实现各种排序
- 各种排序c语言实现
- 各种排序的实现
- 各种排序的实现
- 用c实现的各种排序的方法
- 常用的各种排序算法(C语言实现)
- 各种基本的排序算法在Object-C实现
- C语言实现各种排序算法
- 各种排序算法的实现
- C++各种排序的实现
- 各种排序算法的实现
- 各种排序的Ruby实现
- 各种排序的C++实现
- 无线局域网知识介绍
- DEDECMS安装你必须知道的几点
- SQL注入常用语句
- 反外挂
- Synopsys 笔试题
- C++各种排序的实现
- 我的第一个Android程序
- 耗时操作方案总结
- 暑期培训全国大学生电子设计竞赛 省赛有资料的相互借鉴。谢谢
- C++数组初始化正确理解
- ITU 656如何触发6410/2440 camera中断
- 人
- Ora-03114解决办法
- 只要生命不息就要坚持到底----世界上最伟大的推销员