C/C++ 排序之一(冒泡排序、选择排序、交换排序)
2013-08-19 19:33
274 查看
冒泡排序、选择排序、交换排序
1、冒泡排序bubble_sort
#include <iostream>
void bubble_sort(int *begin, int *end)
{
int *i, *j;
for(i = end; i >= begin; i--)
{
for(j = begin; j + 1 <= end; j++)
{
if(*j > *(j + 1))
{
int temp = *j;
*j = *(j + 1);
*(j + 1) = temp;
}
}
end --;
}
}
int main()
{
int data[] = {1,3,7,24,4,67,12,22,454};
bubble_sort(data + 0, data + 8);
for(int *i = data; i <= data + 8; i++)
std::cout << *i << " ";
return 0;
}2、选择排序selection_sort
void exchange_sort(int *begin, int *end)
{
for(int *i = begin; i < end; i ++)
for(int *j = i + 1; j <= end; j ++)
if(*i > *j)
{
int temp = *i;
*i = *j;
*j = temp;
}
}
int main()
{
int data[] = {1, 3, 12, 5, 13, 8, 0, 2, 7};
exchange_sort(data + 0, data + 8);
for(int *i = data; i <= data + 8; i ++)
{
std::cout << *i << " ";
}
std::cout << std::endl;
return 0;
}
1、冒泡排序bubble_sort
#include <iostream>
void bubble_sort(int *begin, int *end)
{
int *i, *j;
for(i = end; i >= begin; i--)
{
for(j = begin; j + 1 <= end; j++)
{
if(*j > *(j + 1))
{
int temp = *j;
*j = *(j + 1);
*(j + 1) = temp;
}
}
end --;
}
}
int main()
{
int data[] = {1,3,7,24,4,67,12,22,454};
bubble_sort(data + 0, data + 8);
for(int *i = data; i <= data + 8; i++)
std::cout << *i << " ";
return 0;
}2、选择排序selection_sort
#include <iostream> void selection_sort(int *begin, int *end) { for(int *i = begin; i < end; i ++) { int *k = i; for(int *j = i + 1; j <= end; j ++) if(*k > *j) k = j; if(k != i) { int temp = *k; *k = *i ; *i = temp; } } } int main() { int data[] = {1, 3, 12, 5, 13, 8, 0, 2, 7}; selection_sort(data + 0, data + 8); for(int *i = data; i <= data + 8; i ++) { std::cout << *i << " "; } std::cout << std::endl; return 0; }3、交换排序exchange_sort
void exchange_sort(int *begin, int *end)
{
for(int *i = begin; i < end; i ++)
for(int *j = i + 1; j <= end; j ++)
if(*i > *j)
{
int temp = *i;
*i = *j;
*j = temp;
}
}
int main()
{
int data[] = {1, 3, 12, 5, 13, 8, 0, 2, 7};
exchange_sort(data + 0, data + 8);
for(int *i = data; i <= data + 8; i ++)
{
std::cout << *i << " ";
}
std::cout << std::endl;
return 0;
}
相关文章推荐
- C/C++ 排序之一(冒泡排序、选择排序、交换排序)
- C++ 选择排序、冒泡排序、插入排序
- 几种常用的排序算法:插入排序、冒泡排序、选择排序的算法及C++实现
- C++各种常见排序算法 冒泡排序,插入排序,快排序,选择排序,希尔排序
- C++三种排序,快速排序、选择排序、冒泡排序----简单代码
- 插入排序、冒泡排序、选择排序、希尔排序、快速排序、归并排序、堆排序和LST基数排序——C++实现
- 插入排序、冒泡排序、选择排序、希尔排序、快速排序、归并排序、堆排序和LST基数排序的C++代码实现
- 选择排序、冒泡排序、插入排序、基数排序、快速排序、归并排序完整C++实现
- [C++]数据结构:排序算法Part1----冒泡排序、选择排序、插入排序、堆排序
- 简单的排序算法——插入排序,选择排序,交换排序(冒泡排序,快速排序)
- 算法之排序——交换排序(选择排序,冒泡排序)
- 冒泡排序和选择排序(C++实现)
- [C++]数据结构:排序算法Part1----冒泡排序、选择排序、插入排序、堆排序
- 冒泡排序 & 选择排序 (C++)
- 插入排序、冒泡排序、选择排序、希尔排序、高速排序、归并排序、堆排序和LST基数排序——C++实现
- 简单的排序算法——插入排序,选择排序,交换排序(冒泡排序,快速排序)
- 交换排序——冒泡排序和快速排序,C++代码实现
- 简单的排序算法——插入排序,选择排序,交换排序(冒泡排序,快速排序)
- C++实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等
- c++:选择排序和冒泡排序