C语言索引排序不明白,求大神给段索引排序的代码,该如何解决
C语言索引排序不明白,求大神给段索引排序的代码
C语言索引排序不明白,求大神给段索引排序的代码
------解决方案--------------------
三种冒泡实现,比较简单。更多的排序方法可以找本数据结构的书看看。
C语言索引排序不明白,求大神给段索引排序的代码
------解决方案--------------------
#include <iostream>
void BubbleSort1(int arr[], int n);
void BubbleSort2(int arr[], int n);
void BubbleSort3(int arr[], int n);
int main()
{
int arr[] = { 5, 23, 4, 1, 1, 3 };
BubbleSort3(arr, 6);
for (auto i : arr) {
std::cout << i << " " << std::ends;
}
return 0;
}
void Swap(int &a, int &b)
{
int tmp = a;
a = b;
b = tmp;
}
void BubbleSort1(int arr[], int n)
{
for (int i = 0; i < n; i++) {
for (int j = 1; j < n - i; j++) {
if (arr[j - 1] > arr[j]) {
Swap(arr[j - 1], arr[j]);
}
}
}
}
void BubbleSort2(int arr[], int n)
{
bool flag = true;
int k = n;
while (flag == true) {
flag = false;
for (int i = 0; i < n; i++) {
if (arr[i - 1] > arr[i]) {
Swap(arr[i - 1], arr[i]);
flag = true;
}
}
k--;
}
}
void BubbleSort3(int arr[], int n)
{
int j, k;
int flag = n;
while (flag > 0) {
k = flag;
flag = 0;
for (j = 1; j < k; j++) {
if (arr[j - 1] > arr[j]) {
Swap(arr[j - 1], arr[j]);
flag = j;
}
}
}
}
三种冒泡实现,比较简单。更多的排序方法可以找本数据结构的书看看。