首页 > 代码库 > c - 冒泡/选择排序.
c - 冒泡/选择排序.
1 #include <stdio.h> 2 3 void 4 bubbleSort(int *, int); 5 6 void 7 selectSort(int *, int); 8 9 void10 show(int *, int);11 12 void13 swap(int *, int, int);14 15 int16 main(void) {17 int a[8] = {555, 2, 3, 77, 66, 5, 0, -3};18 int len = 8;19 show(a, len);20 //bubbleSort(a, 4);21 selectSort(a, len);22 show(a, len);23 return 0;24 }25 26 //冒泡排序27 void28 bubbleSort(int *a, int len) {29 for(int i = 0; i < len - 1; i++) {30 bool isSwap = false; //若已排好序,则不再排.31 for(int j = 0; j < len - i - 1; j++) {32 if(a[j] > a[j+1]) {33 swap(a, j, j +1);34 isSwap = true;35 }36 }37 if(!isSwap) break;38 }39 }40 41 //普通选择排序.42 void43 selectSort(int *a, int len) {44 for(int i = 0; i < len - 1; i++) {45 bool isSwap = false; //若已排好序,则不再排.46 for (int j = i + 1; j < len; j++) {47 if(a[i] > a[j]) {48 swap(a, i, j);49 isSwap = true;50 }51 }52 if(!isSwap) break;53 }54 }55 56 //一般有3中交换方法,这种方法比较节省内存.57 void58 swap(int *a, int i, int j) {59 a[i] = a[i] ^ a[j];60 a[j] = a[i] ^ a[j];61 a[i] = a[i] ^ a[j];62 }63 64 //打印数组65 void66 show(int *a, int len) {67 int i;68 for(i = 0; i < len; i++)69 printf("%d ", a[i]);70 printf("\n");71 }
c - 冒泡/选择排序.
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。