首页 > 代码库 > 交换类排序算法
交换类排序算法
#include<stdio.h>/**交换类排序,每天一道算法题 *按照从小到大的顺序进行排序 * 毛施平*///冒泡排序 void traverseArray(int *p,int length){ int i=0; for(;i<length;i++) { printf("%d\n",p[i]); } }//这个是最简单的 void bubbleSortOne(int *p,int length){ int i=length; int j,temp; int lastChangeIndex; printf("简单一点:\n"); while(i>1) { lastChangeIndex=1; for(j=0;j<i-1;j++) { if(p[j]>p[j+1]) { temp=p[j]; p[j]=p[j+1]; p[j+1]=temp; lastChangeIndex=j; } } traverseArray(p,9); printf("\n"); i=lastChangeIndex; } } //这个排序并不是最简单的 void bubbleSort(int *p,int length){ int i,j,temp; for(i=0;i<length;i++) { for(j=0;j<length-i-1;j++) { if(p[j]>p[j+1]) { temp=p[j]; p[j]=p[j+1]; p[j+1]=temp; } } }} //快速排序 int Partition(int *p,int low,int high){ //int low=0,high=length-1; int temp=p[low]; while(low<high) { while(low<high&&p[high]>=temp) high--; p[low]=p[high]; while(low<high&&p[low]<=temp) low++; p[high]=p[low]; } p[low]=temp; return low;} void QSort(int *p,int low,int high){ if(low<high) { int pivotloc=Partition(p,low,high); traverseArray(p,9); printf("\n"); QSort(p,low,pivotloc-1); QSort(p,pivotloc+1,high); }}int main(){ int a[]={9,2,1,4,5,7,3,8,6}; bubbleSortOne(a,sizeof(a)/sizeof(int)); int low=0; int high=sizeof(a)/sizeof(int)-1; // QSort(a,low,high); traverseArray(a,sizeof(a)/sizeof(int)); system("pause"); return 0;}
冒泡排序和快速排序都属于交换类排序,最简单的冒泡排序需要考虑不
交换类排序算法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。