冒泡排序、选择排序、插入算法
1.冒泡排序
冒泡排序的关键在于相邻元素两两比较,较大的元素置于一边 ,之后重复比较
算法演示图
代码实现
public static Sort(int[] a) {
for (int i = 0; i < sizeof(a)/sizeof(int); i++) {
for (int j = 0; j < sizeof(a)/sizeof(int) - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
2.选择排序
算法演示图
算法实现
void Sort(int a[]){
int temp;
for(int i=0;i
3.插入算法
插入算法的思想是将数组分成两个部分来看,前一部分是有序序列,后一部分是 无序序列,扫描到的无序序序列的首个元素 和 依次和前面有序序列的数字进行比交 并插入合适的位置。
算法演示
void Sort(int a[]){
for(int i=1;i=0;j--){
if(a[j]>a[j+1]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
5.希尔算法
写入算法(shell Sort)也称为缩小增量排序,希尔排序是对插入排序的一种改进。按下标的一定增量进行分组,对每组进行插入排序算法、随着增量的减少,每组的元素数量越来越多 ,当增量为1时,算法终止
算法演示图
代码实现
void ShellSort(int a[])
{
for (int step = (sizeof(a) / sizeof(int)) / 2; step > 0; step / 2)
{
for (int i = step; i < sizeof(a) / sizeof(int); i++)
{
for (int j = i - step; j >= 0; j -= step)
{
if (a[j] > a[j + step])
{
int temp = a[j];
a[j] = a[j + step];
a[j + step] = temp;
}
}
}
}
}
}