Algoritmos e Estruturas de Dados em Golang - Ver e Fazer Algoritmos e Estruturas de Dados em Golang | Ver e Fazer

Algoritmos e Estruturas de Dados em Golang

 **Estruturas de Dados:** 1. Slices 2. Maps 3. Arrays




Veja Algoritmos e Estruturas de Dados em Golang

 **Estruturas de Dados:**

  • 1. Slices
  • 2. Maps
  • 3. Arrays

  • 4. Structs
  • 5. Channels
  • 6. Listas Ligadas
  • 7. Pilhas
  • 8. Filas
  • 9. Conjuntos (implementados usando maps)
  • 10. Árvores (implementadas usando structs)
  • 11. Heap
  • 12. Tabelas Hash
  • 13. Grafos (representação de adjacência)


**Algoritmos:**

  • 1. Ordenação (quicksort, mergesort, sort package em Go)
  • 2. Pesquisa Binária
  • 3. Pesquisa Sequencial
  • 4. Depth-First Search (DFS)
  • 5. Breadth-First Search (BFS)
  • 6. Dijkstra (caminho mais curto)
  • 7. Bellman-Ford (caminho mais curto com arestas ponderadas)
  • 8. Percurso em Ordem, Pré-Ordem e Pós-Ordem em Árvores
  • 9. Inserção e Remoção em Árvores de Busca Binária
  • 10. Manipulação de Strings (busca, substituição)
  • 11. Algoritmo de Kruskal (mínima árvore geradora)
  • 12. Algoritmo de Prim (mínima árvore geradora)
  • 13. Algoritmo de Floyd-Warshall (todos os caminhos mais curtos)
  • 14. Algoritmo de Knuth-Morris-Pratt (busca de padrões em strings)
  • 15. Algoritmo de Rabin-Karp (busca de padrões em strings)
  • 16. Algoritmo de Johnson (todos os pares mais curtos em grafos ponderados)
  • 17. Algoritmo de Ford-Fulkerson (fluxo máximo em redes)
  • 18. Algoritmo de Edmonds-Karp (fluxo máximo em redes usando BFS)
  • 19. Algoritmo de Euclides (maior divisor comum)
  • 20. Algoritmo de Euclides Estendido (coeficientes de Bézout)


**Lista de 20% que Faz 80% do Trabalho:**

  • 1. Slices
  • 2. Maps
  • 3. Arrays
  • 4. Ordenação (sort package)
  • 5. Pesquisa Binária
  • 6. Depth-First Search (DFS)
  • 7. Breadth-First Search (BFS)
  • 8. Dijkstra (caminho mais curto)
  • 9. Percurso em Ordem, Pré-Ordem e Pós-Ordem em Árvores
  • 10. Inserção e Remoção em Árvores de Busca Binária


As estruturas de dados são usadas para armazenar e organizar dados de maneira eficiente. Cada estrutura de dados tem suas próprias vantagens e desvantagens, e é importante escolher a estrutura de dados correta para o problema que você está tentando resolver. Aqui estão alguns exemplos de quando você pode usar algumas das estruturas de dados:


1. **Slices**: Slices são usados em Go para armazenar sequências de elementos de tamanho variável. Eles são úteis quando você precisa armazenar uma lista de itens que pode crescer ou diminuir dinamicamente.


2. **Maps**: Maps são usados para armazenar pares chave-valor. Eles são úteis quando você precisa armazenar dados que podem ser acessados rapidamente por uma chave.


3. **Arrays**: Arrays são usados para armazenar uma sequência fixa de elementos do mesmo tipo. Eles são úteis quando você precisa armazenar um conjunto de dados que não mudará de tamanho.


4. **Structs**: Structs são usados para agrupar dados relacionados em uma única estrutura. Eles são úteis quando você precisa armazenar dados que têm vários campos relacionados.


5. **Channels**: Channels são usados em Go para permitir a comunicação entre goroutines. Eles são úteis quando você precisa coordenar a execução de várias tarefas em paralelo.


6. **Listas Ligadas**: Listas ligadas são usadas para armazenar uma sequência de elementos em que cada elemento aponta para o próximo elemento na lista. Elas são úteis quando você precisa inserir ou remover elementos da lista com frequência.


7. **Pilhas**: Pilhas são usadas para armazenar uma sequência de elementos em que o último elemento adicionado é o primeiro a ser removido. Elas são úteis quando você precisa manter um histórico de ações ou quando precisa desfazer ações na ordem inversa.


8. **Filas**: Filas são usadas para armazenar uma sequência de elementos em que o primeiro elemento adicionado é o primeiro a ser removido. Elas são úteis quando você precisa processar elementos em ordem.


9. **Conjuntos (implementados usando maps)**: Conjuntos são usados para armazenar um conjunto de elementos exclusivos. Eles são úteis quando você precisa garantir que cada elemento seja único.


10. **Árvores (implementadas usando structs)**: Árvores são usadas para armazenar dados hierárquicos em que cada elemento tem um ou mais elementos filhos. Elas são úteis quando você precisa armazenar dados em uma estrutura hierárquica.


11. **Heap**: Heap é uma estrutura de dados que permite que você mantenha o menor ou o maior elemento em tempo constante. Eles são úteis quando você precisa manter o menor ou o maior elemento em uma lista em tempo constante.


12. **Tabelas Hash**: Tabelas hash são usadas para armazenar pares chave-valor. Elas são úteis quando você precisa armazenar dados que podem ser acessados rapidamente por uma chave.


13. **Grafos (representação de adjacência)**: Grafos são usados para representar relacionamentos entre objetos. Eles são úteis quando você precisa modelar relacionamentos complexos entre objetos.


 Algoritmos são conjuntos de instruções que resolvem problemas específicos. Aqui estão alguns exemplos simples de como você pode usar alguns dos algoritmos que você mencionou:


1. **Ordenação**: Algoritmos de ordenação são usados para organizar dados em uma ordem específica. Por exemplo, se você tiver uma lista de nomes em ordem aleatória e quiser organizá-los em ordem alfabética, você pode usar o algoritmo de ordenação **quicksort** ou **mergesort**. O **sort package em Go** é uma biblioteca de ordenação embutida que pode ser usada para ordenar dados em Go.


2. **Pesquisa Binária**: A pesquisa binária é usada para encontrar um item em uma lista ordenada. Por exemplo, se você tiver uma lista de números em ordem crescente e quiser encontrar um número específico, você pode usar a pesquisa binária para encontrar o número em tempo logarítmico.


3. **Pesquisa Sequencial**: A pesquisa sequencial é usada para encontrar um item em uma lista não ordenada. Por exemplo, se você tiver uma lista de nomes em ordem aleatória e quiser encontrar um nome específico, você pode usar a pesquisa sequencial para encontrar o nome em tempo linear.


4. **Depth-First Search (DFS)**: O DFS é usado para percorrer grafos. Por exemplo, se você tiver um grafo e quiser visitar todos os vértices, você pode usar o DFS para percorrer o grafo.


5. **Breadth-First Search (BFS)**: O BFS é usado para percorrer grafos. Por exemplo, se você tiver um grafo e quiser visitar todos os vértices, você pode usar o BFS para percorrer o grafo.


6. **Dijkstra (caminho mais curto)**: O algoritmo de Dijkstra é usado para encontrar o caminho mais curto entre dois vértices em um grafo ponderado. Por exemplo, se você tiver um mapa de uma cidade com ruas que têm diferentes comprimentos, você pode usar o algoritmo de Dijkstra para encontrar o caminho mais curto entre duas ruas.


7. **Bellman-Ford (caminho mais curto com arestas ponderadas)**: O algoritmo de Bellman-Ford é usado para encontrar o caminho mais curto entre dois vértices em um grafo ponderado. Ele pode lidar com grafos que têm arestas negativas, ao contrário do algoritmo de Dijkstra.


8. **Percurso em Ordem, Pré-Ordem e Pós-Ordem em Árvores**: O percurso em ordem, pré-ordem e pós-ordem são usados para percorrer árvores. Por exemplo, se você tiver uma árvore de diretórios em seu computador e quiser listar todos os arquivos em ordem alfabética, você pode usar o percurso em ordem.


9. **Inserção e Remoção em Árvores de Busca Binária**: As árvores de busca binária são usadas para armazenar dados em uma estrutura de árvore. Você pode usar a inserção e remoção em árvores de busca binária para adicionar ou remover dados da árvore.


10. **Manipulação de Strings (busca, substituição)**: A manipulação de strings é usada para trabalhar com texto. Por exemplo, se você tiver um documento de texto e quiser encontrar todas as ocorrências de uma palavra específica, você pode usar a busca de padrões em strings, como o algoritmo de Knuth-Morris-Pratt ou o algoritmo de Rabin-Karp.


11. **Algoritmo de Kruskal (mínima árvore geradora)**: O algoritmo de Kruskal é usado para encontrar a árvore geradora mínima de um grafo ponderado. Por exemplo, se você tiver um mapa de uma cidade com ruas que têm diferentes comprimentos, você pode usar o algoritmo de Kruskal para encontrar a árvore geradora mínima que conecta todas as ruas.


12. **Algoritmo de Prim (mínima árvore geradora)**: O algoritmo de Prim é usado para encontrar a árvore geradora mínima de um grafo ponderado. Ele é semelhante ao algoritmo de Kruskal, mas usa uma abordagem diferente.


13. **Algoritmo de Floyd-Warshall**: O algoritmo de Floyd-Warshall é usado para encontrar o caminho mais curto entre todos os pares de vértices em um grafo ponderado. Por exemplo, se você tiver um mapa de uma cidade com ruas que têm diferentes comprimentos, você pode usar o algoritmo de Floyd-Warshall para encontrar o caminho mais curto entre todas as ruas.


14. **Algoritmo de Knuth-Morris-Pratt**: O algoritmo de Knuth-Morris-Pratt é usado para encontrar padrões em strings. Por exemplo, se você tiver um documento de texto e quiser encontrar todas as ocorrências de uma palavra específica, você pode usar o algoritmo de Knuth-Morris-Pratt para encontrar o padrão em tempo linear.


15. **Algoritmo de Rabin-Karp**: O algoritmo de Rabin-Karp é usado para encontrar padrões em strings. Por exemplo, se você tiver um documento de texto e quiser encontrar todas as ocorrências de uma palavra específica, você pode usar o algoritmo de Rabin-Karp para encontrar o padrão em tempo linear.


16. **Algoritmo de Johnson**: O algoritmo de Johnson é usado para encontrar todos os pares mais curtos em grafos ponderados. Por exemplo, se você tiver um mapa de uma cidade com ruas que têm diferentes comprimentos, você pode usar o algoritmo de Johnson para encontrar o caminho mais curto entre todas as ruas.


17. **Algoritmo de Ford-Fulkerson**: O algoritmo de Ford-Fulkerson é usado para encontrar o fluxo máximo em redes. Por exemplo, se você tiver uma rede de transporte com capacidades limitadas em cada rota, você pode usar o algoritmo de Ford-Fulkerson para encontrar o fluxo máximo de mercadorias que pode ser transportado.


18. **Algoritmo de Edmonds-Karp**: O algoritmo de Edmonds-Karp é usado para encontrar o fluxo máximo em redes usando BFS. É uma variação do algoritmo de Ford-Fulkerson que é mais eficiente em termos de tempo. Por exemplo, se você tiver uma rede de transporte com capacidades limitadas em cada rota, você pode usar o algoritmo de Edmonds-Karp para encontrar o fluxo máximo de mercadorias que pode ser transportado.


19. **Algoritmo de Euclides**: O algoritmo de Euclides é usado para encontrar o maior divisor comum entre dois números. Por exemplo, se você tiver dois números e quiser encontrar o maior divisor comum entre eles, você pode usar o algoritmo de Euclides.


20. **Algoritmo de Euclides Estendido**: O algoritmo de Euclides Estendido é usado para encontrar os coeficientes de Bézout entre dois números. Por exemplo, se você tiver dois números e quiser encontrar os coeficientes de Bézout entre eles, você pode usar o algoritmo de Euclides Estendido.




Gostou da Algoritmos e Estruturas de Dados em Golang Não se esqueça de curtir e compartilhar com seus amigos o Algoritmos e Estruturas de Dados em Golang para apoiar o nosso trabalho!

COMMENTS

Nome

3d,28,A bela e a Fera,3,Abecedario,110,Abelha,69,Abobora,1,Acessorios,11,Ads,39,AdSense,42,Adwords,1,Aeronaves,2,Afiliados,27,Agulheiros,21,Alfabeto,104,Alfineteiras,28,Alice,4,Alice no pais das maravilhas,6,Alimentos,1,Almofadas,129,Aluminio,1,Amigurumi,283,Animal,43,Animes,91,Aniversario,6,Anjinhos,55,Anuncios,5,Aparador de canecas,10,Aplicativos,6,Apliques,45,Apostilas,141,Aranha,2,Arco iris,2,Arranjos,5,Art,20,Arte,82,Arteiras,22,Artes,55,Artesanato,5895,artesanato Croche,2,Artigos,732,Artisanat,162,Arvores,27,Astronauta,6,Astronave,3,Atividades educativas,156,Atividades para educação infantil,180,Atividades para imprimir,139,Autoestima,1,Aves,2,Aviões,2,Babador,3,Babuska,1,Baby,30,Bailarina,52,Baixar,4,Balão,18,Baleia,8,Bandeirinha,54,Bandeirinhas,61,Banheiro,3,Barbante,3,Barcos,1,Base,1,Bastidor,49,Batizados,6,Bebê,43,Beleza,2,Bendy Dolls,1,Bichinhos,1809,Bichos,113,Bidu,1,Bijuterias,1,Bird,1,Biscuit,20,BJD,1,Blog,54,Blogger,43,Blusa,3,Boa tarde,1,Boas ideias,28,Bode,1,Boinas,2,Bola,4,Boleros,1,Bolo,7,Bolo Fake,3,Bolsa,108,Bolsas,8,Bom dia,8,Boneca,445,Boneca de pano,332,Boneca lol,61,Bonecas,933,Bonecos,392,Bonecos de neve,57,Book,1,Borboletas,23,Bordado,141,Bota,31,Botinha,10,Botões,3,Branca de Neve,12,Bricolagem,2,Brindes,10,Brinquedos,18,Bruxa,7,Bruxinha,35,Buque,1,Cabelo,2,Cabra,1,Caça palavras,1,Cachecol,2,Cachorrinhos,91,Cacto,12,Caderno,2,Caixa de leite,1,Caixas,29,Calça,3,Calendario,3,Canguru,2,Capa de Caderno,47,Capas,28,Capinhas para celular,6,Capitao america,2,Caracol,2,Carnaval,5,Carregador,1,Carreira,5,Carrinho,4,Carro,11,Carruagem,4,Carteira,3,Casa,23,Casacos,3,Casal,5,Casamento,3,Castelo,4,Castor,1,Cats,3,Cavalo,16,Cavalo marinho,1,Cegonha,4,Celular,2,Cenoura,1,Centopeia,7,Centro de mesa,40,Cervos,5,Cestas,19,Cha de bebe,34,Chapeu,3,Chaveiro,29,Chaveiros,84,Chinelos,2,Cinema,1,Circo,17,Cisne,3,Clash Royale,1,Coala,3,Cobra,2,Coelho,75,Coelhos,484,Cogumelo,3,Colorir,83,Comidas,2,Como faço,47,Como Fazer,272,Comunhão,1,Construção,1,Contos,1,Contos de Fadas,3,Coração,26,Coroa,6,Corretoras,1,Corte,23,Corte e costura,116,Cortinas,5,Coruja,69,Cosplay,1,Costura,40,Cozinha,7,Crafts,1074,Credito,21,Crianca,32,Croche,584,CupCake,10,Curiosidades,1,Cursos,39,Customização,1,Dado,3,Daisy,1,Deadpool,1,Decoração,406,Decorar,47,Decoupage,2,Dedoches,14,Dente,6,Dentista,5,Desenhos,352,Desenhos para Colorir,301,Dev,92,Dia dos Namorados,10,Diadema,1,Dicas,277,Dicas para blog,44,Dinossauros,40,Disney,83,Diy,85,Diy Ideas,15,Doces,6,Docinhos,8,Dog,3,Doki,1,Doll,54,Dragao,10,Dragon Ball,5,Duende,20,Duendes,62,E.V.A,54,Economia,17,Educação Infantil,239,Educar,108,Educativo,12,Elefante,44,Emoticons,2,Enfeite,33,Enfeites,558,Envelope,1,Enxoval,1,Escola,21,Esconde chave,5,Espanhol,10,Espantalho.,7,Esquilos,7,Estilo,1,Estojo,22,Estrelas,29,Etiquetas,1,Eucaristia,2,EVA,471,Eventos,7,Expressoes,1,Fada,15,Fadinha,14,Fantoches,15,Farol,1,Fashion,6,Faz Facil,3,Fazenda,4,Fazendinha,6,Felt,401,Felting,1,Feltmania,24,Feltragem,27,Feltragem com agulhas,4,Feltreiras,15,Feltro,2489,Feltro 3d,2,Feltro Felt,1,Ferramentas,1,Festa,68,Fieltro,885,Filtro dos sonhos,2,Fimo,2,Finanças,36,Fios,1,Fita,1,Flamingos,4,Flamula,56,Flor,141,Flores,118,Floresta,3,Fofos,1,Foguete,1,Folhas,5,Forex,12,Formatura,6,Formiga,1,Fotos,3,Frances,3,Franjas,1,Frases,107,Frida Kahlo,1,Frutas,27,Fundo,2,Fundo do Mar,16,Fuxico,24,Galinha,33,Ganhar Dinheiro,41,Ganso,2,Gatinhos,146,Gato,50,Girafa,21,Golfinhos,3,Goma,34,Google,5,Gorros,4,Grafico,29,Graficos,80,gratuito,4,Guarda Chuva,2,Guaxinim,2,Guirlandas,137,Halloween,30,Handmade,189,Handwierker,167,Hello Kitty,6,Heroinas,7,Herois,11,Hipopotamo,9,Historia,1,Homem,1,Homem de ferro,2,Hora de Aventura,1,Host,3,Hulk,1,Humor,2,Ideias,151,Ideias para festa,38,Imagem,1,Imagens,12,imprimir,4,Ingles,2,Insetos,2,Investimento,15,Jacare,4,Jardim,5,Jinx,2,Joaninha,95,Jogo de banheiro,9,Jogos,16,Kawaii,8,Kimono,1,Koala,2,La,11,Laco,12,Laços,21,Lampada,1,Lanches,2,Latas,1,Layout,1,Leao,14,Legumes,2,Lembrancinhas,404,Letras,128,Lhama,11,Ligar os pontos,11,Lilo Stitch,1,Linhas,9,Livro,30,Lobo,1,lol,59,Lua,8,Luva,6,Macaco,10,Macrame,14,Makeup,1,Mandala,1,Manta,6,Manualidades,5293,Maquiagem,1,Marca Paginas,24,Marinheiro,7,Marketing,28,Marvel,1,Mascara,31,Mascaras,480,Máscaras,10,Matematica,16,Maternal,2,Matrioska,4,MDF,1,Meias,17,Meio ambiente,1,Memes,2,Meninas,34,mensagem,7,Mensagens,89,Mercado financeiro,6,Metoo,3,Mickey,19,Mimin dolls,3,Mimos,16,Mingau,1,Minie,12,Minion,4,Minnie,2,Mobile,40,Mochila,15,Moda,19,Modelos,67,Molde,72,Moldes,9900,Moldes 3d,15,Moldes de feltro,1364,Moldes de Silicone,1,Moldes em feltro,313,Moldes para eva,223,Moldes para feltro,940,Molds,7,Molduras,3,Monograma,6,Monstrinhos,2,Moranguinho,10,Motivação,1,Motivos,6,Mulher,16,Muñeca,3,Munecas,19,Mural,22,Musicas,2,Nail-Art,9,Naninha,12,Natal,1457,Navios,2,Necessaire,14,Noivos,3,Novidades,4,Numeros,14,Nuvem,11,Organizadores,1,Origami,3,Orquidea,3,Os Flintstones,1,Osito,1,Ourico,1,Outono,1,Ovelha,21,Ovo,4,Ovos,6,Painel,29,Paisagem,1,Palhaço,16,Palitos,1,Panda,25,Pano,65,Panos de prato,1,Pantufas,14,Papel,12,Papel de parede,11,Pascoa,173,páscoa,1,Passarinhos,55,Passo a passo,2,Patchwork,86,Pateta,1,Patinho,10,Pato,7,Pato Donald,1,Patrones,27,Patrulha Canina,4,Patterns,24,Pegasus,2,Peixes,10,Pelicano,1,Pelucia,41,Pena,2,Penteados,1,Peppa pig,2,Personagens,80,Personalização,2,Peru,1,Peso de porta,27,Peter pan,1,Pets,17,Piadas,1,Picole,1,Pingentes,54,Pinguim,13,Pinoquio,1,Pintar,75,Pintura,116,Pintura em tecido,122,Pirata,5,Placas,3,Plantas,5,Plantilla,3,Pluto,1,Pocket,1,Polvo,4,Ponei,1,Ponteira,7,Pontilhados,20,Ponto Cruz,20,Porquinha,1,Porta agenda,1,Porta agulhas,4,Porta Aliança,2,Porta copos,6,Porta docinhos,13,Porta fone,1,Porta Maternidade,44,Porta moedas,13,Porta oculos,1,Porta pano de pratos,9,Porta retratos,17,Porta trecos,10,Portugal,14,Prendedor de cabelo,2,Prendedor de Cortina,8,Presentes,34,Presepio,7,Primavera,1,Princesa,66,Principe,9,Protetor de Berço,17,Publicidade,2,Puff,10,Pulseiras,4,Quadro,37,Quarto,12,Quarto de bebê,20,Quarto de Criança,17,Quebra Cabeça,3,Quiet Book,38,Raposa,29,Ratinhos,24,Rato,5,Receitas,30,Reciclagem,21,Recrutamento,5,Rei,3,Relogio,4,Rena,148,Retalhos,1,Revista,73,Riscos,139,Robo,2,Rosa,12,Rosita,1,Roupas,58,Sache,1,Sacolinhas,16,Safari,25,Sala,1,Sansao,1,Santinhas,8,Sapatinhos,32,Sapinhos,12,Sapo,11,Saquinhos,13,Saúde,1,Scrap,13,Scrapbook,10,Script,1,Seguro,5,SEO,11,Sereia,17,Serie,4,Shorts,6,Show da Luna,1,Silicone,1,Slider,27,Sol,1,Sonic,2,Sorvete,3,Star wars,3,Surpresa,4,Tapete,28,Tartarugas,10,Tear,3,Tecido,176,Teia,1,Tela,1,Tema,4,Tenis,8,Terrarios,1,Thor,1,Tiara,9,Tigre,2,Tildas,4,Toalhas,5,Toalhinhas de mao,4,Toca,1,Topo de bolo,5,Torre,1,Torta,1,Torta Fake,1,Touca,5,Toy Story,2,Toys,1,Trabalhos manuais,639,Trader,2,Trafego,10,Trança,1,Travesseiros,3,Trico,28,Tucano,1,Turma,11,Turma da Monica,5,Turma do Chaves,6,Tutorial,116,Tv,1,Unhas,5,Unicornio,82,Ursinho,112,Ursinho Pooh,8,Ursinhos,536,Urso,42,Vaca,16,Veados,3,Vegetais,2,Veiculos,3,Velcro,1,Ver e Fazer,3,Verduras,2,Vestido,32,vide,1,Video,50,Videos,721,Visual,1,Wallpaper,26,web-stories,3,Youtube,22,Zebra,4,Zumbi,19,
ltr
item
Ver e Fazer: Algoritmos e Estruturas de Dados em Golang
Algoritmos e Estruturas de Dados em Golang
Ver e Fazer
https://www.verefazer.org/2023/12/algoritmos-e-estruturas-de-dados-em-golang.html
https://www.verefazer.org/
https://www.verefazer.org/
https://www.verefazer.org/2023/12/algoritmos-e-estruturas-de-dados-em-golang.html
true
4084861044654339844
UTF-8
Loaded All Posts Not found any posts VER TODOS Ver mais Reply Cancel reply Delete By Home PAGES POSTS View All Veja também LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow Conteúdo Exclusivo Por favor, compartilhe para desbloquear Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy