冒泡排序 选择排序 快速排序(C语言)

来源:互联网 发布:nginx安装ssl模块 编辑:程序博客网 时间:2024/06/10 18:11
#include <stdio.h>#include <stdlib.h>#include <time.h> //用到了time函数#define arraySize 10//随机数组个数//打印函数void print(int array[]){    printf("打印随机数组\r\n");    int i;    for(i=0;i<arraySize;i++)    {        printf("%d\t",array[i]);    }    printf("打印完毕\r\n");}//产生随机数组void createRandomArray(int array[]){    printf("生成新的随机数组\r\n");    int i,number;    srand((unsigned) time(NULL)); //用时间做种,每次产生随机数不一样    for (i=0; i<arraySize; i++)    {        array[i] = rand() % 101; //产生0-100的随机数        //printf("%d ", array[i]);    }    print(array);}//冒泡排序void bubbleSort(int array[]){    int i,j,temp;    for(i=0;i<arraySize-1;i++)        for(j=0;j<arraySize-1-i;j++)            if(array[j]>array[j+1])//从小到大            {                temp=array[j+1];                array[j+1]=array[j];                array[j]=temp;            }}//选择排序void selectionSort(int array[]){    int i,j,temp;    for(i=0;i<arraySize-1;i++)        for(j=i+1;j<arraySize;j++)            if(array[i]>array[j])//从小到大            {                temp=array[j];                array[j]=array[i];                array[i]=temp;            }}//快速排序(重点)void quickSort(int array[],int left,int right){    while(left>=right)    {        return;    }    int i=left,j=right,key=array[left];    while(i<j)//一次查找    {        while(i<j&&array[j]>=key)//从后向前搜索        {            j--;        }        array[i]=array[j];        while(i<j&&array[i]<=key)//从前向后搜索        {            i++;        }        array[j]=array[i];    }    array[i]=key;    quickSort(array,left,i-1);    quickSort(array,i+1,right);}int main(){    int randomArray[arraySize];    printf("选择排序方法:1、冒泡排序\t2、选择排序\t3、快速排序\t0、退出\r\n");    int select;    while(scanf("%d",&select))    {        switch(select)        {            case 1:                printf("---------------------\r\n");                createRandomArray(randomArray);                printf("冒泡排序\r\n");                bubbleSort(randomArray);                print(randomArray);                printf("---------------------\r\n");                break;            case 2:                printf("---------------------\r\n");                createRandomArray(randomArray);                printf("选择排序\r\n");                selectionSort(randomArray);                print(randomArray);                printf("---------------------\r\n");                break;            case 3:                printf("---------------------\r\n");                createRandomArray(randomArray);                printf("快速排序\r\n");                quickSort(randomArray,0,arraySize-1);                print(randomArray);                printf("---------------------\r\n");                break;            case 0:                exit(0);                break;            default:                printf("---------------------\r\n");                printf("输入有误,重新输入\r\n");                printf("---------------------\r\n");                break;        }    }    return 0;}

0 0