很久以前就很想总结有关数据结构与算法的博客了,只是一直抽不出时间来总结。但无论如何都要把写博客养成自己的一种习惯,做到随时开发随时总结。我认为算法是程序的灵魂,数据结构是编程的基础两者在开发中是非常非常重要的,所以学好算法和数据结构对软件开发是有很大帮助的。下面将开启我的算法与数据结构学习之旅,在这里我选择用C++语言,话不多说,代码直接整起:
一、选择排序
#include "stdafx.h"
#include <iostream>
#include "stdlib.h"
#include <algorithm>
using namespace std;
//选择排序
void selectSort(int arr[], int n) {
//查找[i,n)区间元素的最小值
for (int i = 0; i < n; i++) {
//假设第i个位置上的元素最小
int minIndex = i;
//从第i个元素的下一个元素开始查找与之对比并交换位置
for (int j = i + 1; j < n; j++) {
//与假设的最小元素对比
if (arr[j] < arr[minIndex]) {
//更新最小位置的元素
minIndex = j;
}
}
//交换位置
swap(arr[i], arr[minIndex]);
}
}
int main() {
int arr[10] = { 99,20,50,10,88,35,66,89,100,77 };
selectSort(arr, 10);
for (int i = 0; i < 10; i++)
{
cout << arr[i] << " ";
}
system("pause");
return 0;
}