C语言四种排序算法完整程序
来源:互联网 发布:淘宝内衣不能晒图 编辑:程序博客网 时间:2024/06/05 14:49
C语言四种排序算法完整程序
包含冒泡排序、插入排序、选择排序
主程序设计了菜单可以反复无限次调用查看运行结果
由于使用了随机数列,每次的待排序数列都不一样
#include <stdio.h>#include <stdlib.h>#include <time.h>//产生随机数组void gen_array(int arr[],int n){ int i; unsigned sr = time(NULL); //用当前时间做随机数种子 srand(sr); //初始化随机数 for(i=0;i<n;i++) arr[i]=1+rand()%100;}void print(int a[],int n){ int i; for(i=0;i<n;i++) printf("%6d",a[i]); printf("\n");}//冒泡排序void BubleSort(int a[],int n){ int i,j,x; for(i=0;i<n;i++) { for(j=1;j<n-i;j++) { if(a[j-1]>a[j]) { x=a[j]; a[j]=a[j-1]; a[j-1]=x; } } }}//快速排序void QuickSort(int a[], int left, int right){ if (left < right) { int i = left, j = right, x = a[left]; while (i < j) { while(i < j && a[j] >= x) // 从右向左找第一个小于x的数 j--; if(i < j) a[i++] = a[j]; while(i < j && a[i] < x) // 从左向右找第一个大于等于x的数 i++; if(i < j) a[j--] = a[i]; } a[i] = x; QuickSort(a, left, i - 1); // 递归调用 QuickSort(a, i + 1, right); }}//插入排序void InsertSort(int arr[], int n){ int i,j,temp; for (i = 1; i < n; i++) { temp=arr[i]; j=i; while(j>0 && arr[j-1]>temp) { arr[j] = arr[j-1]; j--; } arr[j]=temp; } }//选择排序void SelectSort(int arr[],int n){ int i,j,k,temp; for(i=0;i<n;i++) { k=i; for(j=i+1;j<n;j++) { if(arr[j]<arr[k]) k = j; } if(k>i) { temp = arr[i]; arr[i] = arr[k]; arr[k] = temp; } }}int main(){ int array[10]; int len = sizeof(array)/sizeof(int); int ch; while(1) { gen_array(array,len); printf("Original array:\n"); print(array,len); printf("Please select sort method:\n");//显示菜单 printf("\t0 exit\n\t1 Buble sort\n\t2 Quick Sort\n\t3 Insertion Sort\n\t4 Selection Sort\nYour choice is>>"); scanf("%d",&ch); switch(ch) { case 0: return 0; case 1: BubleSort(array,len); printf("Buble sorted array:\n"); print(array,len); break; case 2: QuickSort(array,0,len-1); printf("Quick sorted array:\n"); print(array,len); break; case 3: InsertSort(array,len); printf("Insertion sorted array:\n"); print(array,len); case 4: SelectSort(array,len); printf("Selection sorted array:\n"); print(array,len); default: break; } system("pause"); system("cls"); }}
0 0
- C语言四种排序算法完整程序
- 二路归并排序算法实现-完整C语言程序
- 快速排序(完整程序c语言实现)
- C语言------排序算法--------选择排序(四)
- C语言四种常用排序
- C语言的四种排序代码
- C 语言排序算法
- C语言排序算法
- C语言排序算法
- 排序算法(c语言)
- 排序算法 --- C语言
- c语言排序算法
- C语言排序算法
- c语言排序算法
- c语言排序算法
- C语言排序算法
- C语言排序算法
- c语言排序算法
- [转]进程间通过共享内存方式传输大数据
- Java并发编程(1)-AtomicInteger
- java中使用FIFO队列:java.util.Queue实现多台服务器发邮件的代码
- java基本数据类型
- 什么样的人能成为赚钱的草根站长
- C语言四种排序算法完整程序
- APP测试要点
- CardView的详细使用
- 程序员必读书单
- BCGControlBar中文教程之Ribbon Designer(2/4)
- 文件操作模式分析
- js深度克隆
- 关于计算运行时间
- Leetcode 34. Search for a Range (Medium) (java)