📄 quicksort.txt
字号:
#include<stdio.h>
#define Maxsize 20
void swap(int *a,int *b)
{
int c;
c=*a;
*a=*b;
*b=c;
}
//一趟快速排序
int QuickOnePass(int *list,int i,int j)
{
int temp;
temp=list[i];
/*
do{
while((list[i]>=temp)&&(j>i)) j--;
if(j>i)
{ list[i]=list[j];i++;}
while((list[i]<=temp)&&(j>i)) i++;
if(j>i)
{ list[i]=list[j];j--;}
} while(j>i);
list[i]=temp;
*/
while(i<j)
{
while(i<j&&list[j]>=temp)
j--;
swap(&list[i],&list[j]);
while(i<j&&list[i]<=temp)
i++;
swap(&list[i],&list[j]);
}
return i;
}
//快速排序函数
QuickSort(int *list,int low,int high)
{
int k;
if(low<high)
{ k=QuickOnePass(list,low,high);
QuickOnePass(list,low,k-1); //前半部分排序
QuickOnePass(list,k+1,high); //后半部分排序
}
}
main()
{
int list[Maxsize],i,index=0;
int j;
int node;
//输入所要排的数
printf("Please enter numbers you want to sort:(0 for exit)\n");
scanf("%d",&node);
/*
while(node!=0)
{ list[index]=node;
index=index+1;
scanf("%d",&node);
}
*/
printf("Input %d number :\n",node);
for(j=0;j<node;j++)
{
scanf("%d",&list[j]);
}
//快速法排序
//QuickSort(list,0,index-1);
QuickSort(list,0,node-1);
//输出排序后的数
printf("Final sorting result:\n");
for(i=0;i<node;i++)
printf("%5d",list[i]);
getchar();
getchar();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -