冒泡排序、快速排序、选择排序、插入排序、shell排序C代码
来源:互联网 发布:php相册管理系统 编辑:程序博客网 时间:2024/06/07 12:39
- #include <stdio.h>
- void bubbleSort(int *list,int index)
- {
- int i,j;
- int temp;
- for(j=index;j>0;j--)
- {
- for(i=0;i<j-1;i++)
- {
- if(list[i]>list[i+1])
- {
- temp=list[i+1];//较小值保存在暂存变量里
- list[i+1] = list[i];// 较大值后移
- list[i] = temp;//较小值前移
- }
- }
- }
- }
- void quicksort(int *list,int left,int right)
- {
- int i,j,k;
- int pivot;//分割指针
- int temp;//交换时的暂存变量
- i=left;j=right+1;
- pivot=list[left];
- if(i<j)
- {
- do
- {
- do
- {
- i++;
- }while(list[i]<=pivot&&i<=right);//从左往右找大于pivot的值
- do
- {
- j--;
- }while(list[j]>=pivot&&j>left);//从右往左找小于pivot的值
- if(i<j)
- {
- temp=list[i];
- list[i] = list[j];
- list[j] = temp;
- }
- }while(i<j);//1st do
- temp = list[left];
- list[left] = list[j];
- list[j] = temp;
- quicksort(list,left,j-1);
- quicksort(list,j+1,right);
- }
- }
- void selectionsort(int *list,int index)
- {
- int i,j,minat,min;
- for(i=0;i<(index-1);i++)
- {
- minat=i;
- min = list[i];
- for(j=i+1;j<index;j++)//select the min of the rest of array
- {
- if(min>list[j])
- {
- minat = j;//position of the min element
- min=list[j];
- }
- }
- int temp=list[i];
- list[i]=list[minat];
- list[minat] = temp;
- }
- }
- void insertionsort(int *list,int index)
- {
- int i,j;
- int insertnode;
- for(i=1;i<index;i++)
- {
- insertnode=list[i];//设置欲插入的数值
- j=i-1;
- while(j>=0&&insertnode<list[j])
- {
- list[j+1] = list[j];
- j--;
- }
- list[j+1] = insertnode;
- }
- }
- void shellsort(int *list,int index)
- {
- int i,j,d;
- int temp;
- d=index/2;//初始集合间隔长
- while(d>0)
- {
- for(i=d;i<index;i++)
- {
- j=i-d;
- while(j>=0)
- {
- if(list[j]>list[j+d])
- {
- temp=list[j];
- list[j]= list[j+d];
- list[j+d]= temp;
- j=j-d;
- }
- else
- j=-1;
- }
- }
- d/=2;
- }
- }
- int main()
- {
- int bsort[64];
- int i,node,index=0;
- printf("Please input number to sort:/n");
- scanf("%d",&node);
- while(node)
- {
- bsort[index++]=node;
- scanf("%d",&node);
- }
- /*-------------Bubble Sort-------------------*/
- //bubbleSort(bsort,index);
- /*------------------------------------------*/
- /*----------quick sort----------------------*/
- //quicksort(bsort,0,index-1);
- /*------------------------------------------*/
- /*----------selection sort------------------*/
- //selectionsort(bsort,index);
- /*------------------------------------------*/
- /*----------Insertion sort------------------*/
- //insertionsort(bsort,index);
- /*------------------------------------------*/
- /*-----------Shell sort---------------------*/
- shellsort(bsort,index);
- /*------------------------------------------*/
- printf("/nFinal sorting result:/n");
- for(i=0;i<index;i++)
- {
- printf("%d ",bsort[i]);
- }
- return 0;
- }
- 冒泡排序、快速排序、选择排序、插入排序、shell排序C代码
- 插入排序、冒泡排序、选择排序、Shell排序、快速排序、归并排序、堆排序
- C语言程序----排序(直接插入排序,SHELL排序,冒泡排序,快速排序,简单选择排序,堆排序)
- C语言:冒泡排序、选择排序、快速排序、插入排序、“shell”法
- Java实现排序(插入排序+冒泡排序+选择排序+ Shell排序+快速排序)
- 冒泡排序、交换排序、选择排序、插入排序、快速排序、SHELL排序
- 选择排序,冒泡排序,插入排序,交换排序,shell排序
- 冒泡排序 快速排序 插入排序 堆排序 选择排序
- 插入排序、选择排序、冒泡排序、快速排序、堆排序
- 数组排序:快速排序,选择排序,冒泡排序,插入排序
- Java 排序 快速排序 冒泡排序 选择排序 插入排序
- 冒泡排序、选择排序、插入排序代码
- 内排序(插入排序、冒泡排序、选择排序、shell排序、快速排序、归并排序、堆排序)
- 常用的选择排序.Shell排序.快速排序.冒泡排序.插入排序的算法
- Java插入排序、冒泡排序、选择排序、快速排序、shell排序(一)
- C语言实现基本排序算法----排序(直接插入排序,SHELL排序,冒泡排序,快速排序,简单选择排序,堆排序)
- Java冒泡排序、插入排序、选择排序、shell排序
- 实现冒泡排序、插入排序、选择排序、shell排序
- 动网:关于部分论坛用户发帖、回帖时报错“数据中含有非法字符。您的用户名并不存在,或者您的论坛密码错误,或者您的帐号已被管理员锁定。” 及“您没有发表新主题的权限”解决方法
- VS2008向VS2005的转换
- Java 输入/输出
- SQL注射检测之不用单引号一样要你命
- Linux中ipv6代码阅读(1)
- 冒泡排序、快速排序、选择排序、插入排序、shell排序C代码
- Linux内核启动参数
- 继续v4l2分析
- Linux计算机中无线蓝牙安装和配置方法
- Java 网络程序
- MyCam Picture Display Graph
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- VB6各数据类型序列化和反序列化
- bad interpreter: No such file or directory 解决方法