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

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

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

2019-11-14 09:40:13
字體:
來源:轉載
供稿:網友

這里寫圖片描述

#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; }

這里寫圖片描述


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 论坛| 盱眙县| 惠州市| 和平县| 满城县| 三台县| 延长县| 翁牛特旗| 杨浦区| 门头沟区| 色达县| 上虞市| 敦化市| 新兴县| 宁化县| 雷山县| 施甸县| 栖霞市| 灯塔市| 达州市| 浙江省| 阿克苏市| 上林县| 乃东县| 乌海市| 沐川县| 永寿县| 抚宁县| 休宁县| 宜昌市| 略阳县| 漳平市| 丹寨县| 武汉市| 浦江县| 晴隆县| 五大连池市| 长沙市| 若尔盖县| 克什克腾旗| 于田县|