快速和选择排序程序示例

来源:互联网 发布:手机无法安装软件 编辑:程序博客网 时间:2024/06/15 14:10
快速排序程序(转的)示例:
#include<stdio.h>#include<string.h>int get_middle(int array[], int start, int end){int front = 0;int tail = end - start;int value = array[start];int length = end - start + 1;int loop = start + 1;        int gQuickSort[10]={0};while(loop <= end){if(array[loop] < value){gQuickSort[front] = array[loop];front ++;}else{gQuickSort[tail] = array[loop];tail --;}loop ++;}gQuickSort[front] = value;memmove(&array[start], gQuickSort, sizeof(int) * (length));return start + front ;}void _quick_sort(int array[], int start, int end){int middle;if(start >= end)return;middle = get_middle(array, start, end);_quick_sort(array, start, middle -1);_quick_sort(array, middle + 1, end);}void quick_sort(int array[], int length){int median = 0;if(NULL == array || 0 == length)return;_quick_sort(array, 0, length-1);}int main(){   int array[]={3,85,43,32,76};   int i;   quick_sort(array,sizeof(array)/sizeof(int));   for(i=0;i<sizeof(array)/sizeof(int);i++)   {      printf("%d ",array[i]);   }   printf("\n");   return 0;}

看完下面的舞蹈视频就知道快速排序的原理了

http://v.youku.com/v_show/id_XMzMyODk4NTQ4.html



选择排序

#include<stdio.h>void selsort(int *array,int length);int main(int argc,char **argv){    int i=0;    int s[]={0,3,2,5,4,7,6,9,8,1};    selsort(s,sizeof(s)/sizeof(int));    for(i=0;i<sizeof(s)/sizeof(int);i++)       printf("%d ",s[i]);    printf("\n");    return 0;}void selsort(int *array,int length){   int temp=0,i,j;   for(i=0;i<length;i++)   for(j=i+1;j<length;j++)   {      temp=array[i];      if(temp>array[j])      {          array[i]=array[j];          array[j]=temp;      }   }}

看完下面的视频就能知道选择排序的原理

http://v.youku.com/v_show/id_XMjU4NTY5NTcy.html


原创粉丝点击