国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

內部排序之交換排序:冒泡排序,快速排序

2019-11-14 10:32:31
字體:
來源:轉載
供稿:網友

這里寫圖片描述

#include <stdio.h>#define N 10void Bubble_Sort(int A[], int n) { int i,j,temp; for(i=0;i<n-1;i++) //從前向后遍歷 { for(j=0;j<n-1-i;j++) //每一輪比較前n-1-i,已經排好序的最后i個不用比較 { if(A[j]>A[j+1]) //往前冒泡 { temp=A[j]; A[j]=A[j+1]; A[j+1]=temp; } } }}int main() { int m = 0; int B[N] = {4,5,6,1,2,3,7,8,9}; 這里寫圖片描述

以下為一趟快速排序(幫助理解):

#include <stdio.h>#define N 10void Partition_Sort(int A[],int low,int high){ int pivot=A[low]; while(low<high) { while(low<high&&A[high]>=pivot) //將比樞軸值小的元素移動到左 { --high; A[low]=A[high]; } while(low<high&&A[low]<=pivot) //將比樞軸值大的元素移動到右 { ++low; A[high]=A[low]; } } A[low]=pivot; //樞軸元素存放到最終位置}int main() { int m = 0; int B[N] = {4,5,6,1,2,3,7,8,9}; printf("=============================/n/n"); printf("排序前的數據是:/n4 5 6 1 2 3 7 8 9/n"); Partition_Sort(B,0,9); printf("一趟快速排序后的結果是:/n"); for(m=1; m<N;m++) { printf(" %d ", B[m]); } printf("/n/n=============================/n/n"); return 0; }

用遞歸完成整個排序過程:

#include <stdio.h>#define N 10void Quick_Sort(int A[],int low,int high){ int i=low; int j=high; int pivot = A[i]; //將low記錄為樞軸元素 if(low<high) //跳出循環條件 { while(i<j) { while((A[j]>= pivot)&&(i<j)) //比樞軸元素大的放在其后 { j--; } A[i]=A[j]; while((A[i]<=pivot)&&(i<j)) { i++; } A[j]= A[i]; } A[i]=pivot; //確定好樞軸元素的位置 Quick_Sort(A,low,i-1); //遞歸 Quick_Sort(A,j+1,high); } else { return; }}int main() { int m = 0; int time=N; int B[N] = {4,5,6,1,2,3,7,8,9}; printf("=============================/n/n"); printf("排序前的數據是:/n4 5 6 1 2 3 7 8 9/n"); Quick_Sort(B,0,9); printf("排序后的結果是:/n"); for(m=1; m<N;m++) { printf(" %d ", B[m]); } printf("/n/n=============================/n/n"); return 0; }

這里寫圖片描述


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 莆田市| 德清县| 和平县| 中卫市| 武鸣县| 鄂州市| 高淳县| 华容县| 双辽市| 清水县| 谢通门县| 昂仁县| 恩施市| 长治市| 彰武县| 宣汉县| 凤翔县| 永平县| 民县| 和龙市| 德州市| 达拉特旗| 丰镇市| 叙永县| 红桥区| 彝良县| 泸州市| 突泉县| 宜章县| 准格尔旗| 聂拉木县| 贡嘎县| 股票| 蕉岭县| 韶关市| 邵阳市| 开江县| 利辛县| 江津市| 申扎县| 化德县|