冒泡排序 选择排序 快速排序(C语言)
生活随笔
收集整理的這篇文章主要介紹了
冒泡排序 选择排序 快速排序(C语言)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
#include <stdio.h>
#include <stdlib.h>
#include <time.h> //用到了time函數(shù)#define arraySize 10//隨機數(shù)組個數(shù)//打印函數(shù)
void print(int array[])
{printf("打印隨機數(shù)組\r\n");int i;for(i=0;i<arraySize;i++){printf("%d\t",array[i]);}printf("打印完畢\r\n");
}//產(chǎn)生隨機數(shù)組
void createRandomArray(int array[])
{printf("生成新的隨機數(shù)組\r\n");int i,number;srand((unsigned) time(NULL)); //用時間做種,每次產(chǎn)生隨機數(shù)不一樣for (i=0; i<arraySize; i++){array[i] = rand() % 101; //產(chǎn)生0-100的隨機數(shù)//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;
}
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的冒泡排序 选择排序 快速排序(C语言)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 栈(C语言)
- 下一篇: 链表排序(C语言)选择排序