#!/bin/bash
function fun1(){
arr[0]=`id -u $1`
arr[1]=`id -g $1`
echo ${arr[*]}
}
arr=(`fun1 ubuntu`)
echo ${arr[*]}
冒泡排序
void Maopao(int arr[],int len){
for(int i=1;i<len;i++){
int count=0;
for(int j=0;j<len-i;j++){
if(arr[j]>arr[j+1]){
int t=arr[j];
arr[j]=arr[j+1];
arr[j+1]=t;
count++;
}
}
if(count==0)break;
}
for(int i=0;i<len;i++){
printf("%d ",arr[i]);
}
printf("\n");
}
简单选择排序
for(int i=0;i<len;i++)
{
int min=i;//表示默认第一个值为最小值,min取下表
for(int j=i+1;j<len;j++)
{
if(data[min]>data[j])
{
min=j;
}
}
if(min!=i)
{
int t=data[min];
data[min]=data[i];
data[i]=t;
}
}
快速排序
// 交换两个元素的值
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 将数组分成两个部分,小于基准值的元素放在左边,大于基准值的元素放在右边
int partition(int arr[], int low, int high) {
int pivot = arr[high]; // 选择最后一个元素作为基准值
int i = (low - 1);
for (int j = low; j <= high- 1; j++) {
if (arr[j] < pivot) {
i++;
swap(&arr[i], &arr[j]);
}
}
swap(&arr[i + 1], &arr[high]);
return (i + 1);
}
// 递归实现快速排序
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pi = partition(arr, low, high);
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
}