简单的C语言快速排序实现代码
2014-09-29 17:42
483 查看
C语言快速排序代码
#include <stdio.h>
typedef int elem;
int position(elem *arr,int numSize)
{
elem temp;
int i=0,j=numSize-1;
temp = arr[i];
while (i<j)
{
while (arr[j]>=temp && i<j) --j;
if (arr[j]<temp)
arr[i++] = arr[j];
while (arr[i]<=temp && i<j) ++i;
if (arr[i]>temp)
arr[j--] = arr[i];
}
arr[i]=temp;
return i;
}
void qSort(elem *arr,int numSize)
{
int k;
if (numSize<1) return;
k=position(arr,numSize);
qSort(arr,k);
qSort(arr+k+1,numSize-1-k);
}
int main(void)
{
elem arr[]={8,2,6,5,3,6,2,7,45,2,666,132,4585,12,1,3,22,15,2,3,6,2,3,5};
int i=0;
int size=sizeof(arr)/sizeof(elem);
qSort(arr,size);
while (i<size)
{
printf("%d\t",arr[i]);
++i;
}
printf("\n");
return 0;
}-----------------心灵有家,生命才有路
#include <stdio.h>
typedef int elem;
int position(elem *arr,int numSize)
{
elem temp;
int i=0,j=numSize-1;
temp = arr[i];
while (i<j)
{
while (arr[j]>=temp && i<j) --j;
if (arr[j]<temp)
arr[i++] = arr[j];
while (arr[i]<=temp && i<j) ++i;
if (arr[i]>temp)
arr[j--] = arr[i];
}
arr[i]=temp;
return i;
}
void qSort(elem *arr,int numSize)
{
int k;
if (numSize<1) return;
k=position(arr,numSize);
qSort(arr,k);
qSort(arr+k+1,numSize-1-k);
}
int main(void)
{
elem arr[]={8,2,6,5,3,6,2,7,45,2,666,132,4585,12,1,3,22,15,2,3,6,2,3,5};
int i=0;
int size=sizeof(arr)/sizeof(elem);
qSort(arr,size);
while (i<size)
{
printf("%d\t",arr[i]);
++i;
}
printf("\n");
return 0;
}-----------------心灵有家,生命才有路
相关文章推荐
- 快速排序的C语言代码实现
- C语言实现 排序源程序(包括直接插入、希尔、冒泡、快速、简单选择、堆排序)
- C语言实现 排序源程序(包括直接插入、希尔、冒泡、快速、简单选择、堆排序)
- 简单的C语言选择排序实现代码
- 快速排序的c语言实现代码
- (数据结构排序的实验四)快速,冒泡,简单选择,直接插入排序的c语言实现!!
- 快速排序的C语言代码实现
- PHP 简单数组排序实现代码
- 转载:yangsen600的C语言实现的简单排序算法汇总
- 简单代码,实现快速判断几个EDIT是否允许为空
- 线性结构 -- 连续存储(数组), 1个简单的c语言代码实现.
- 快速排序C语言算法实现
- 快速排序_C语言实现
- 快速排序的C语言实现及其时间复杂度
- 交换排序——冒泡排序和快速排序,C++代码实现
- 几种基本的排序算法(选择排序,冒泡排序,快速排序,归并排序,希尔排序)C语言实现
- 快速排序 C语言实现
- 快速排序分析与C语言实现
- 快速排序其他实现代码
- 简单代码实现LCD菜单(C语言的实现方法---加强版 有视频教程)