排序算法概括
发布时间:2021-12-11 11:43:18 所属栏目:PHP教程 来源:互联网
导读:1 冒泡排序: void BubbleeSort(int*p,int len,SORT_TYPE type = SORT_ASC) { //冒泡方式二:当某一次遍历没有发生任务数据交互时,说明已经排序好了 bool flag = true; int k = len; while (flag) { flag = false; for(int j=0 ; jk-1 ; j++) { if (p[j] p[j+
1 冒泡排序: void BubbleeSort(int*p,int len,SORT_TYPE type = SORT_ASC) { //冒泡方式二:当某一次遍历没有发生任务数据交互时,说明已经排序好了 bool flag = true; int k = len; while (flag) { flag = false; for(int j=0 ; j<k-1 ; j++) { if (p[j] > p[j+1]) { swap(p+j,p+j+1); flag = true; } } } 2、快速排序: void QuickSort(int*a, int nLeft, int nRight) { if(nLeft > nRight) return; int temp = a[nLeft]; int i = nLeft; int j = nRight; while (i < j) { //首先从右边找到一个比temp小的数 while(a[j]>=temp && j>i) j--; //从左边边找到一个比temp大的数 while(a[i]<=temp && j>i) i++; //交换找到的两个数据 //交换两个数在数组中的位置 swap(a+i,a+j); } //print(a,10); //最终将基准数归位 swap(a+nLeft,a+i); QuickSort(a,nLeft,i-1); QuickSort(a,i+1,nRight); } 3、插入排序 void InsertSort(int*a, int nLeft, int nRight) { for(int i=1 ; i< len ; i++) { if(a[i] < a[i-1]) { int j = i-1; int temp = a[i]; while(temp < a[j]) { a[j+1] = a[j]; j--; } a[j+1] = temp; } //print(a,len); } } 4、选择排序 void SelectSort(int*a,int len,SORT_TYPE type = SORT_ASC) { for(int i=0; i<len;i++) { int temp = a[i]; int index = i; for(int j=i+1; j <len;j++) { if(a[j] < a[index]) { index = j; } } swap(a+i,a+index); } //print(a,len); } ![]() (编辑:云计算网_泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |