Merge pull request #166 from L-Super/patch-1

Update bubble_sort.md
pull/177/head^2
Yudong Jin 2 years ago committed by GitHub
commit eeb0aec2f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,72 @@
/**
* File: bubble_sort.c
* Created Time: 2022-12-26
* Author: Listening (https://github.com/L-Super)
*/
#include "../include/include.h"
/* 冒泡排序 */
void bubble_sort(int nums[], int size)
{
// 外循环:待排序元素数量为 n-1, n-2, ..., 1
for (int i = 0; i < size - 1; i++)
{
// 内循环:冒泡操作
for (int j = 0; j < size - 1 - i; j++)
{
if (nums[j] > nums[j + 1])
{
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
}
/* 冒泡排序(标志优化)*/
void bubble_sort_with_flag(int nums[], int size)
{
// 外循环:待排序元素数量为 n-1, n-2, ..., 1
for (int i = 0; i < size - 1; i++)
{
bool flag = false;
// 内循环:冒泡操作
for (int j = 0; j < size - 1 - i; j++)
{
if (nums[j] > nums[j + 1])
{
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
flag = true;
}
}
if (!flag)
break;
}
}
/* Driver Code */
int main()
{
int nums[6] = {4, 1, 3, 1, 5, 2};
printf("冒泡排序后:\n");
bubble_sort(nums, 6);
for (int i = 0; i < 6; i++)
{
printf("%d ", nums[i]);
}
printf("优化版冒泡排序后:\n");
bubble_sort_with_flag(nums, 6);
for (int i = 0; i < 6; i++)
{
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}

@ -0,0 +1,2 @@
#include <stdio.h>
#include <stdbool.h>

@ -14,9 +14,8 @@ void bubbleSort(vector<int>& nums) {
for (int j = 0; j < i; j++) {
if (nums[j] > nums[j + 1]) {
// 交换 nums[j] 与 nums[j + 1]
int tmp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = tmp;
// 这里使用了 std::swap() 函数
swap(nums[j], nums[j + 1]);
}
}
}
@ -31,9 +30,8 @@ void bubbleSortWithFlag(vector<int>& nums) {
for (int j = 0; j < i; j++) {
if (nums[j] > nums[j + 1]) {
// 交换 nums[j] 与 nums[j + 1]
int tmp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = tmp;
// 这里使用了 std::swap() 函数
swap(nums[j], nums[j + 1]);
flag = true; // 记录交换元素
}
}

@ -85,9 +85,8 @@ comments: true
for (int j = 0; j < i; j++) {
if (nums[j] > nums[j + 1]) {
// 交换 nums[j] 与 nums[j + 1]
int tmp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = tmp;
// 这里使用了 std::swap() 函数
swap(nums[j], nums[j + 1]);
}
}
}
@ -170,7 +169,24 @@ comments: true
=== "C"
```c title="bubble_sort.c"
/* 冒泡排序 */
void bubble_sort(int nums[], int size)
{
// 外循环:待排序元素数量为 n-1, n-2, ..., 1
for (int i = 0; i < size - 1; i++)
{
// 内循环:冒泡操作
for (int j = 0; j < size - 1 - i; j++)
{
if (nums[j] > nums[j + 1])
{
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
}
```
=== "C#"
@ -250,9 +266,8 @@ comments: true
for (int j = 0; j < i; j++) {
if (nums[j] > nums[j + 1]) {
// 交换 nums[j] 与 nums[j + 1]
int tmp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = tmp;
// 这里使用了 std::swap() 函数
swap(nums[j], nums[j + 1]);
flag = true; // 记录交换元素
}
}
@ -352,7 +367,27 @@ comments: true
=== "C"
```c title="bubble_sort.c"
/* 冒泡排序 */
void bubble_sort(int nums[], int size)
{
// 外循环:待排序元素数量为 n-1, n-2, ..., 1
for (int i = 0; i < size - 1; i++)
{
bool flag = false;
// 内循环:冒泡操作
for (int j = 0; j < size - 1 - i; j++)
{
if (nums[j] > nums[j + 1])
{
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
flag = true;
}
}
if(!flag) break;
}
}
```
=== "C#"

Loading…
Cancel
Save