回顾冒泡排序(新增优化代码)
发布日期:2021-05-08 23:24:40 浏览次数:17 分类:博客文章

本文共 2375 字,大约阅读时间需要 7 分钟。

////  main.c//  数组-冒泡排序////  Created by LongMa on 2019/6/26.//  Copyright © 2019. All rights reserved.// #include 
int main(int argc, const char * argv[]) { int a[10]; for (int i = 0; i < 10; i++) { printf("请输入第%d个整数,共10个:",i + 1); scanf("%d", &a[i]); } int temp = 0; //冒泡:第一次,最大的排到了最后一位;第二次(不用对比最后一个),次大的排到倒数第二位... for (int i = 0; i <= 10 - 1 - 1 ; i++) {//共3个数,要循环2次 => n个数,循环n-1次 int endLoop = 0; for (int j = 0; j <= 10 - 1 - 1 - i ; j++) {//i为0时,j + 1最大 == 9,j最大 == 8 if (a[j] > a[j + 1]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; endLoop = 1; printf("exchanged\n"); } } printf("第%d次循环\n", i); //未发生过交换,说明已全部有序。结束循环 if (0 == endLoop) { break; } } for (int k = 0; k < 10; k++) { printf("%d\t",a[k]); } return 0;}

 

 

 log:

请输入第1个整数,共10个:1请输入第2个整数,共10个:2请输入第3个整数,共10个:3请输入第4个整数,共10个:4请输入第5个整数,共10个:5请输入第6个整数,共10个:6请输入第7个整数,共10个:8请输入第8个整数,共10个:7请输入第9个整数,共10个:10请输入第10个整数,共10个:9exchangedexchanged第0次循环第1次循环1    2    3    4    5    6    7    8    9    10    Program ended with exit code: 0

 

 

swift实现版

import Foundation  func mp(arr: Array
) ->Array
{ var a = arr let len = a.count for i in 0...(len - 2){ var endLoop = 0 for j in 0...(len - 2 - i){ if a[j] > a[j + 1] { //exchange let temp = a[j + 1] a[j + 1] = a[j] a[j] = temp endLoop = 1 print("exchanged") } } print("第\(i)次循环") if 0 == endLoop{ break; } } return a } let gArr : [Int] = [6, 3, 5, 4, 88, 9, 2, 1, 0] let lRslt = mp(arr: gArr) print(lRslt) print("---------") let gArr1 : [Int] = [1, 2, 3, 4, 5, 6, 8, 7, 9] let lRslt1 = mp(arr: gArr1) print(lRslt1)

 

 

log:

exchangedexchangedexchangedexchangedexchangedexchangedexchanged第0次循环exchangedexchangedexchangedexchanged第1次循环exchangedexchangedexchanged第2次循环exchangedexchangedexchanged第3次循环exchangedexchangedexchanged第4次循环exchangedexchangedexchanged第5次循环exchangedexchanged第6次循环exchanged第7次循环[0, 1, 2, 3, 4, 5, 6, 9, 88]---------exchanged第0次循环第1次循环[1, 2, 3, 4, 5, 6, 7, 8, 9]

 

上一篇:计算输入的一句英文语句中单词数
下一篇:alloc 和 init都做了什么验证。

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年03月27日 11时25分15秒