行业知识
C语言实现排序算法的六种方式
2026-11-05 09:48:52
来源:互联网转载
1、冒���法
()void Sort(int *pData,int count){int temp;int i,j;for(i=0;ifor(j=0;j if(pData[j]pData[j+1]){ temp=pData[j]; pData[j]=pData[j+1]; pData[j+1]=temp; }}}}int main(){int data[]={10,9,8,7,6,5,4}; Sort(data,7);int i;for(i=0;iprintf("%d\t",data[i]);}printf("\n");return 0;}int temp;int i,j;for(i=0;ifor(j=i+1;jif(pData[j]temp=pData[i];pData[i]=pData[j];pData[j]=temp;}}}}int main(){int data[]={10,9,8,7,6,5,3};Sort(data,7);int i;for(i=0;iprintf("%d\t",data[i]);}printf("\n");return 0;}int temp;int pos;int i,j;for(i=0;itemp=pData[i];pos=i;for(j=i+1;jif(pData[j]temp=pData[j];pos=j;}}pData[pos]=pData[i];pData[i]=temp;}}int main(){int data[]={10,11,23,65,78,3,5};Sort(data,7);int i;for(i=0;iprintf("%d\t",data[i]);}printf("\n");return 0;}int temp;int pos;int i,j;for(i=0;itemp=pData[i];pos=i-1;while((pos=0)&&(temppData[pos+1]=pData[pos];pos--;}pData[pos+1]=temp;}}int main(){int data[]={99,34,54,23,12,76};Sort(data,6);int i;for(i=0;iprintf("%d\t",data[i]);}printf("\n");return 0;} int x=a[left]; while(left while(rightleft && a[right]x) { right--; } if(left a[left]=a[right]; left++; } while(left left++; } if(left a[right]=a[left]; right--; } } a[left]=x;return left;}void quikSort(int a[],int posstart,int posend){ if(posstart int posmid=partition(a,posstart,posend); quikSort(a,posstart,posmid-1); quikSort(a,posmid+1,posend); }}void print_array(int a[],int n){ int i; for(i=0;i printf("%d\t",a[i]); } printf("\n");}int main(){ int a[] = {7, 2, 5, 6, 0, 10, 4}; quikSort(a,0,sizeof(a)/sizeof(a[0])-1); print_array(a,sizeof(a)/sizeof(a[0])); return 0;} int i, j, q;i = s;j = u + 1;q = s;while (i if (X[i] Z[q++] = X[i++];}else{ Z[q++] = X[j++];}} while (i Z[q++] = X[i++]; }while (j Z[q++] = X[j++];}}void mergePass(int X[], int Y[], int n, int t) { int i = 0, j; while( n - i = 2 * t ) //将相邻的两个长度为t的各自有序的子序列合并成一个长度为2t的子序列 { merge(X, Y, i, i + t - 1, i + 2 * t - 1); i = i + 2 * t; } if( n - i t ) //若最后剩下的元素个数大于一个子序列的长度t时 merge(X, Y, i, i + t - 1, n - 1); else //n-i int t = 1; int *Y = (int *)malloc(sizeof(int) * n); while( t
上一篇:怎么给服务器上发送文件?
下一篇:电脑怎么做ftp服务器?