所以我理解升序泡泡排序检查索引i是否大于索引"i + 1",如果是,则它交换位置,然后继续前进直到它到达循环结束,然后循环重新开始,并保持切换位置,直到每个索引"i"不大于"i + 1",然后循环按升序完全排序.
所以我正在看这个冒泡排序代码.以下是来源:www.programmingsimplified.com/c/source-code/c-program-bubble-sort
这是代码:
/* Bubble sort code */
#include <stdio.h>
int main()
{
int array[100], n, c, d, swap;
printf("Enter number of elements\n");
scanf("%d", &n);
printf("Enter %d integers\n", n);
for (c = 0; c < n; c++)
scanf("%d", &array[c]);
for (c = 0 ; c < ( n - 1 ); c++)
{
for (d = 0 ; d < n - c - 1; d++)
{
if (array[d] > array[d+1]) /* For decreasing order use …Run Code Online (Sandbox Code Playgroud) 如果我要用C++形成一个整数数组,我知道我可以这样做:
#include <iostream>
using namespace std;
int main()
{
int numbers[] = {1,2,3,4,5,6,7,8,9,10};
for(int i = 0; i < 10; i++){cout << i << " ";}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
执行上面的C++代码只打印整数1到10,每个整数分隔一个空格.
所以我不访问数组之外的内存空间,最好声明数组的整数大小,所以它通常被声明为int numbers[10] = {1,2,3,4,5,6,7,8,9,10};......但这不是必需的,因为可以使用范围访问整数数组基于循环.
但是,这涉及声明一个数组,通常是大小,或者如果你没有给它大小(元素的数量),那么你必须立即指定数组中的元素,然后C++确定大小.这是一个静态数组.
我感兴趣的是动态数组,您不必在其中声明数组的大小或立即用元素填充它,但您可以稍后将项添加到数组中.考虑一个整数数组,我喜欢在Perl中做这个技巧:
use strict;
use warnings;
my @numbers = (); # Declare an array without declaring its size or elements.
for(my $i = 1; $i <= 10; $i++)
{
push @numbers, $i; # Dynamically form the @numbers array with values 1 to 10.
} …Run Code Online (Sandbox Code Playgroud)