随机生成一组整数利用快速排序思想将其从小到大排好c语言代码
发布网友
发布时间:2023-04-29 15:05
我来回答
共4个回答
热心网友
时间:2023-11-03 16:17
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define RANDOM(i) (rand()%i) //随机的常量
#define N 10 //设置数组长度
//分区操作
int Partition(int array[], int left, int right)
{
int i,j;
int temp;
j = left-1;
for (i=left; i<=right; i++)
{
if (array[i] <= array[right]) //以最后一个数组的值为基准
{
j++;
temp = array[j];
array[j] = array[i];
array[i] = temp;
}
}
return j;
}
//迭代运算
void QuikSort(int array[], int left, int right)
{
int pivot;
if (left < right)
{
pivot = Partition(array, left, right);
QuikSort(array, left, pivot-1);
QuikSort(array, pivot+1, right);
}
}
/*主函数*/
int main()
{
int i = 0;
int a[N];
srand((int)time(0)); //设置随机数种子
for (i=0; i<N; i++) //排序前
{
a[i] = RANDOM(100); //100以内的随机数
printf("%d\t", a[i]); //输出随机得到的数组
}
printf("\n\n");
QuikSort(a, 0, N-1);
for (i=0; i<N; i++) //输出排序后的数组
{
printf("%d\t", a[i]);
}
printf("\n");
}
热心网友
时间:2023-11-03 16:18
#include <stdio.h>
#define SIZE 8
void bubble_sort(int a[], int n);
void bubble_sort(int a[], int n)
{
int i, j, temp;
for (j = 0; j < n - 1; j++)
for (i = 0; i < n - 1 - j; i++)
{
if(a[i] > a[i + 1])
{
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
}
}
int main()
{
int number[SIZE] = {95, 45, 15, 78, 84, 51, 24, 12};
int i;
bubble_sort(number, SIZE);
for (i = 0; i < SIZE; i++)
{
printf("%d", number[i]);
}
printf("\n");
}追问要求要以随机数为基准数,可以写吗?
追答前面的代码不变
int main()
{
int number[SIZE];
for(int i=0;i<SIZE;I++)
{
number[i]=random(0,100) //产生一个0到99的随机数
}
bubble_sort(number,SIZE);
for(int j=0;j<SIZE;j++)
{
printf("%d",number[j]);
}
printf("\n");
}
热心网友
时间:2023-11-03 16:18
T629800处好友
热心网友
时间:2023-11-03 16:19
T668100加我V吧
热心网友
时间:2023-11-03 16:17
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define RANDOM(i) (rand()%i) //随机的常量
#define N 10 //设置数组长度
//分区操作
int Partition(int array[], int left, int right)
{
int i,j;
int temp;
j = left-1;
for (i=left; i<=right; i++)
{
if (array[i] <= array[right]) //以最后一个数组的值为基准
{
j++;
temp = array[j];
array[j] = array[i];
array[i] = temp;
}
}
return j;
}
//迭代运算
void QuikSort(int array[], int left, int right)
{
int pivot;
if (left < right)
{
pivot = Partition(array, left, right);
QuikSort(array, left, pivot-1);
QuikSort(array, pivot+1, right);
}
}
/*主函数*/
int main()
{
int i = 0;
int a[N];
srand((int)time(0)); //设置随机数种子
for (i=0; i<N; i++) //排序前
{
a[i] = RANDOM(100); //100以内的随机数
printf("%d\t", a[i]); //输出随机得到的数组
}
printf("\n\n");
QuikSort(a, 0, N-1);
for (i=0; i<N; i++) //输出排序后的数组
{
printf("%d\t", a[i]);
}
printf("\n");
}
热心网友
时间:2023-11-03 16:18
#include <stdio.h>
#define SIZE 8
void bubble_sort(int a[], int n);
void bubble_sort(int a[], int n)
{
int i, j, temp;
for (j = 0; j < n - 1; j++)
for (i = 0; i < n - 1 - j; i++)
{
if(a[i] > a[i + 1])
{
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
}
}
int main()
{
int number[SIZE] = {95, 45, 15, 78, 84, 51, 24, 12};
int i;
bubble_sort(number, SIZE);
for (i = 0; i < SIZE; i++)
{
printf("%d", number[i]);
}
printf("\n");
}追问要求要以随机数为基准数,可以写吗?
追答前面的代码不变
int main()
{
int number[SIZE];
for(int i=0;i<SIZE;I++)
{
number[i]=random(0,100) //产生一个0到99的随机数
}
bubble_sort(number,SIZE);
for(int j=0;j<SIZE;j++)
{
printf("%d",number[j]);
}
printf("\n");
}
热心网友
时间:2023-11-03 16:18
T629800处好友
热心网友
时间:2023-11-03 16:19
T668100加我V吧