题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
思路:首先定义一个排序好的数组,在其最后插入新元素,随后进行快速排序。
#include <stdio.h>
//首先定义一个快排的函数;
int quick_sort(int a[],int left,int right);
int quick_sort(int a[],int left,int right){
int i=left,j=right;
int temp;
int p;//设置一个枢纽点
p=a[(right+left)/2];
while(i<=j){
while(a[i]<p){
i++;
}
while(a[j]>p){
j--;
}
if(i<=j){
temp=a[i];
a[i]=a[j];
a[j]=temp;
i++;
j--;
}
}
if(j>left){
quick_sort(a,left,j);
}
if(i<right){
quick_sort(a,i,right);
}
}
int main(){
int a[8]={0,1,2,3,4,5,6};
printf("请输入一个数:");
scanf("%d",&a[7]);
quick_sort(a,0,7);
int i;
for(i=0;i<8;i++){
printf("%d,",a[i]);
}
return 0;
}